변수 & 상수
// 변수
var greeting = "Hello, playground"
// 상수
let userName = "baby_coder"
var 명령어 : 변수 선언
let 명령어 : 상수 선언
변수는 선언 후에 다른 값으로 새로 재정의가 가능하지만,
상수는 한 번 정의하면 다른 값으로 재정의가 불가능하다.
변수와 상수는 대입된 값의 타입을 추론한다.
위와 같이 큰 따옴표로 감싸진 문장을 대입했기에 자동으로 String 타입으로 추론(Type Inference)한다.
추론하지 않고 직접적으로 타입을 정의할 수 있다.
var annotationStr:String = "String Annotation Test"
var age:Int = 25
변수명 옆에 : 콜론과 타입을 지정해준다.
이렇게 타입을 지정해주는 것을 Type Annotation이라고 한다.
Annotation 뜻 그대로 타입을 명시해주는 주석을 달아주는 것!
처음부터 변수의 값을 대입하여 값이 있는 상태로 초기화할 수 있지만,
값이 있을 수도 있고, 없을 수도 있는 상태도 표현할 수 있다.
이 표현법을 Optional 말 그대로 선택적이라는 의미를 갖는데,
Type Annotation 옆에 ? 물음표를 붙여서 사용한다.
값이 없으면 nil이라는 값으로 표현한다. 다른 언어에서 사용하는 null과 같다.
// Optional
// 값이 있을수도 없을수도 !
var optionalStr : String?
print(optionalStr) // nil(null) 상태
optionalStr = "have value"
print(optionalStr)
콘솔창에 print 된 결과.
Shift + command + Enter 단축키로 실행 가능하다.
Optional로 정의된 변수는 일반적인 변수와는 성격이 다르고,
기능이 제대로 작동하지 않는 경우도 많다고 한다.
비슷한 느낌의 coalesce라는 문법이 있다.
var num:Int?
var resultNum = (num ?? 0)
print(resultNum)
물음표 왼쪽의 num 변수에 값이 있으면 그 값을 사용하고,
값이 없으면(nil) 물음표 오른쪽의 값을 대입한다.
위 코드를 실행해보면 num 변수는 nil 상태이기 때문에 resultNum은 0을 갖게 된다.
'DEV - iOS > iOS' 카테고리의 다른 글
[Swift] 스위프트 기본 문법 공부(6) - Enumerations (0) | 2022.02.15 |
---|---|
[Swift] 스위프트 기본 문법 공부(5) - 함수 & 클로저 (0) | 2022.02.14 |
[Swift] 스위프트 기본 문법 공부(4) - Set & Dictionary (0) | 2022.02.09 |
[Swift] 스위프트 기본 문법 공부(3) - Array (0) | 2022.01.09 |
[Swift] 스위프트 기본 문법 공부(2) (0) | 2022.01.04 |