DEV - iOS/iOS

[Swift] 스위프트 기본 문법 공부(1)

베이비코더 2021. 12. 27. 22:30
반응형

변수  &  상수

// 변수
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을 갖게 된다.

결과

 

반응형