Swift
[Swift] Guard문
Guard란? 옵셔널 바인딩 수행중 변수에 nil이 들어있으면 예외처리를 할 수 있도록 하는 문법 func greeting(_person:[String:String]) { guard let name:String= person["name"]else{ //만약 nil이면 return으로 함수를 탈출한다 return } //nil이 아니면 수행 print("안녕하세요 \(name)님") } //함수호출 var personInfo:[String:String] = [String:String]() personInfo["name"] ="김감자" greeting(personInfo)
[Swift] 옵셔널 체이닝
옵셔널 체이닝(Optional Chaining)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 그리고 옵셔널 바인딩으로 안전하게 옵셔널 해제도 가능하다. 그런데 또 문제가 생겼다. struct Human { var name : String? var man : Bool = true } var boy : Human? = Human(name: "홍길동", man: true) 위와같은 변수를 선언할 때 //안정성 검사를 하고 접근 if boy != nil { if boy!.name != nil { print("이름은 \(boy!.name!)입니다") } } 이런식으로 nil을 체크하거나 //옵셔널 비강제 해제 구문을 사용하면 if let b = boy { if let name = b.name { ..
[Swift] 옵셔널과 옵셔널 바인딩
옵셔널(Optional)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 다음과 같이 변수명뒤에 '?'를 붙여서 옵셔널로 지정이 가능한데, "이 변수에 nil이 들어갈 수도있고 아닐수도 있고~"라는 의미이다. var optInt : Int? optInt = 3 var optStr : String? optStr = "Swift" var optArr : [String]? optArr = ["C", "Java", "Objective-C"] "그럼 전부 옵셔널로 변수 선언하면 끝 아닌가?" 라고 생각 할 수 있지만 애플은 다 계획이 있다. 이런식으로 만든 이유는 런타임 중에 문제가 발생하는걸 방지하기 위함이다. 만약 값이 반드시 필요한 로직에 nil이 들어가면 프로그램은 문제가 발생하지만 이것을 컴..