■ 변수 (variables)
: 변할 수 있는 데이터를 담을 수 있는 공간 (mutable)
선언방식 : var 변수이름: 타입 = 값
var greeting: String = "Hello, playground"
greeting = "Hi Swift" // 값이 변할 수 있음
print(greeting)
// Hi Swift
Swift의 변수 이름은 camelCase사용 합니다.
■ 상수 (constant)
: 변할 수 없는 데이터를 담을 수 있는 공간 (immutable)
선언방식 : let 변수이름: 타입 = 값
let myConst: Int = 5
// myConst = 7 // 주석 해제시 컴파일 에러⭐️
print(myConst)
// 5
단 상수와 변수를 선언과 동시에 초기화할 경우 아래와 같이 문법을 적용해도 좋습니다.
이 경우 타입 추론이 될 텐데, 타입 추론은 문자열 문단 아래에서 바로 다루고 있습니다!!
let name = "띵진"
var height = 175.0
■ 선언된 값을 문자열 안에서 출력하기 (String interpolation)
1. \() 사용하기 , 파이썬의 f-string 과 비슷 합니다.
2. + operator 사용 하기
var greeting: String = "Hello, playground"
let myConst: Int = 5
print("선언된 변수는 \(greeting) 입니다.")
print("선언된 상수는 \(myConst) 입니다.")
// 선언된 변수는 Hello, playground 입니다.
// 선언된 상수는 5 입니다.
var name = "Thingjin"
"Your name is " + name // Your name is Thingjin
□ Swift에서의 Semicolon 사용
let cat = "🐱"; print(cat)
// "🐱"
■ Swift의 기본 타입(Type) 의 종류
let minValue = Int32.min
let maxValue = Int32.max
print("Int32 의 범위는 \(minValue) ~ \(maxValue) 입니다.")
// Int32 의 범위는 -2147483648 ~ 2147483647 입니다.
□ + 추가 UInt (Unsiged Int)
64비트 플랫폼에서 UInt는 UInt64와 크기가 같습니다.
let maxValue = UInt64.max
print("64비트 UInt 의 최댓값은 \(maxValue) 입니다.")
// 64비트 UInt 의 최댓값은 18446744073709551615 입니다.
■ Type Safety and Type Inference
Swift는 Type Safety 한 언어이다.
Type Safety
: 코드에서 사용할 수 있는 값의 유형에 대해 명확하게 알려줍니다
따라서 타입 추론(Type Inference) 이 가능하다.
1. Type Inference ( 타입 추론 )
let typeInference = 123
type(of: typeInference)
// typeInference is inferred to be of type Int
let pi = 3.14159
type(of: pi)
// pi is inferred to be of type Double
⭐️ type(of: T)
: 타입을 확인하고 싶을때 사용
Swift가 타입을 추론하여 해당 자료형을 유추하게 됩니다.
좀 더 큰 범위의 자료형으로 추론하게 되는데 예를 들면 17.0 은 Float가 아니라 Double형으로 추론을 하고
"A"라는 문자도 Char가 아닌 String으로 추론을 하게 됩니다.
2. Type Annotation ( 타입 어노테이션)
타입 어노테이션은 변수 선언만 해놓고, 네트워크 통신 같은 이후에 변수 할당되는 경우에 사용 하게 됩니다.
즉 초기값을 정해두지 않고 선언만 할때 유용합니다.
또한 타입 추론보다, 상대적으로 시간도 빠르고 정확하게 자료형을 구분 할 수 있습니다.
let typeAnnotation: String = "HI" // Type Annotation
type(of: typeAnnotation)
// typeAnnotation is inferred to be of type String
3. Type Safety
: 컴파일러가 타입 추론을 Int로 검사하였기 때문에 Double 타입인 3.14는 할당되지 않습니다 ‼️
var typeSafety = 12
typeSafety = 3.14
// ERROR
// Cannot assign value of type 'Double' to type 'Int'
■ Type aliases
: 외부 소스에서 특정 크기의 데이터로 작업할 때와 같이 상황에 더 적합한 이름으로 기존 유형을 참조하려는 경우에 유용합니다.
기존 유형의 대체 이름을 정의합니다. typealias 키워드로 typealias 을 정의합니다
typealias AudioSample = UInt16 // typealias
var maxAmplitudeFound = AudioSample.min
// maxAmplitudeFound is now 0
'Swift' 카테고리의 다른 글
[Swift] Optional Unwrapping (3) - 닐 코얼레싱 (Nil-Coalescing) (0) | 2024.01.18 |
---|---|
[Swift] Optional Unwrapping (2) - 옵셔널 바인딩 (Optional Binding) if let , guard let (1) | 2024.01.15 |
[Swift] Optional Unwrapping (1) - 강제 추출 (Forced Unwrapping) (2) | 2024.01.11 |
[Swift] Optional 개념 알아 보기, nil 정의 (4) | 2024.01.08 |
[Swift] 문자열 뒤집는 방법 (0) | 2023.10.13 |