[Swift] 기본 문법 (3)

니나노개발생활·2022년 2월 21일
0

💡ah-ha

목록 보기
48/51
post-thumbnail

옵셔널

  • 값이 있을 수도 있고 없을 수도 있다. = 선택적
var name:String="" // ""이라는 문자 값
var name:String?=nil
var number:Int=0 // 0이라는 숫자 값
var number:Int?=nil

// 옵셔널
//?=를 붙임으로써 값이 있을 수도 있고 없을 수도 있음
var name: String? // nil > 초기값을 지정하지 않으면 nil

var optionalName:String? = "ny"
//var requiredName:String=optionalName // error > optionalNamed은 옵셔널로 감싸져있기 때문에 해제해야한다. = 옵셔널 바인딩

옵셔널 바인딩

  • 옵셔널 해제

명시적 해제

강제 해제

//!
var number: Int? = 3
print(number) //"Optional(3)"
print(number!) //"3"
  • 단, 값이 nil인 옵셔널을 강제 해제하면 에러가 발생해 프로그램이 강제 종료될 수 있다.

비강제 해제(옵셔널 바인딩)

if let result = number {
    print(result) //"3"
}
  • 변수를 설정한 if 구문으로 옵셔널 해제를 진행하면 옵셔널이 추출된 변수나 상수를 if 코드블럭 내에서만 사용이 가능.
    아래와 같이 guard문을 사용하면 함수 전체에서 사용이 가능하다.
func test() {
    let number: Int? = 5
    guard let result = number else {return}
    print(result)
}
  • guard : 조건문이 true인 경우에만 함수가 동작하고 아닐 경우 else구문이 실행된다.
    (뒤에 다시 정리할 예정)

묵시적 해제

컴파일러에 의한 자동 해제

  • 옵셔널값을 비교 연산자를 이용해 다른 값과 비교하면 컴파일러가 자동으로 옵셔널을 해제한다.
let value: Int? = 6
if value == 6 {
    print("value는 6")
} else {
    print("value는 6이 아니다.")
} // "value는 6"

옵셔널의 묵시적 해제

  • 값을 사용할때는 자동으로 옵셔널이 해제된다.
let string = "12"
var stringToInt:Int! = Int(string)
print(stringToInt + 1) // 13

패스트캠퍼스 ios 앱개발 swift 강의를 듣고 작성된 글입니다.

profile
깃헙으로 이사중..

0개의 댓글