Optional
nil, Nil, Null, nsNull의 차이
옵셔널 바인딩
if let name = optionalName { //if-let문법
let greeting = "Hello, \(name)"
print("\(greeting)")
}else{
print("No Name")
}강제 언래핑
??를 이용한 값 대체
import Foundation
let nickname: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickname ?? fullName)"
print("\(informalGreeting)")
함수와 클로져
func greet(person: String, day: String) -> String {
let result: String = "Hello \(person), today is \(day)."
return result
}
let greetMessage: String = greet(person: "Eunno", day: "9/20/2022")
print("\(greetMessage)")
func greet(_ person: String, day: String) -> String {
let result: String = "Hello \(person), today is \(day)."
return result
}
let greetMessage: String = greet("Eunno", day: "09/20/2022")
print("\(greetMessage)")클래스와 구조체의 차이
열거형은 메서드를 가질 수 있다.
안의 요소들은 case라고 한다.
enum City: Int{
case San_Francisco=1
case Paris, Seoul, New_York, London
func help() -> String{
switch self{
case .San_Francisco, .New_York, .London:
return "Hi(S)"
case .Paris:
return "Bonjour"
case .Seoul:
return "안녕하세요"
//Default는 여기서 필요가 없다.
}
}
}
let human: City = City.Paris
print("\(human.help())")