Swift-옵션
Swift 4는 또한 Optionals유형, 값의 부재를 처리합니다. 선택 사항은 "값이 있고 x와 같음"또는 "값이 전혀 없습니다"라고 말합니다.
Optional은 그 자체로 유형이며 실제로 Swift 4의 새로운 강력한 열거 형 중 하나입니다. 두 가지 가능한 값이 있습니다.None 과 Some(T), 어디 T Swift 4에서 사용할 수있는 올바른 데이터 유형의 관련 값입니다.
다음은 선택적 정수 선언입니다.
var perhapsInt: Int?
다음은 선택적 문자열 선언입니다.
var perhapsStr: String?
위의 선언은 명시 적으로 초기화하는 것과 같습니다. nil 그것은 가치가 없음을 의미합니다-
var perhapsStr: String? = nil
Swift 4에서 옵 셔널이 작동하는 방식을 이해하기 위해 다음 예제를 살펴 보겠습니다.
var myString:String? = nil
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Playground를 사용하여 위의 프로그램을 실행하면 다음과 같은 결과를 얻습니다.
myString has nil value
옵션은 사용과 유사합니다. nil Objective-C에 포인터가 있지만 클래스뿐만 아니라 모든 유형에 대해 작동합니다.
강제 풀기
변수를 다음과 같이 정의한 경우 optional,이 변수에서 값을 얻으려면 다음을 수행해야합니다. unwrap그것. 이것은 변수 끝에 느낌표를 넣는 것을 의미합니다.
간단한 예를 들어 보겠습니다.
var myString:String?
myString = "Hello, Swift 4!"
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Playground를 사용하여 위의 프로그램을 실행하면 다음과 같은 결과를 얻습니다.
Optional("Hello, Swift 4!")
이제 unwrapping을 적용하여 변수의 올바른 값을 얻습니다.
var myString:String?
myString = "Hello, Swift 4!"
if myString != nil {
print( myString! )
} else {
print("myString has nil value")
}
플레이 그라운드를 이용하여 위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
Hello, Swift 4!
자동 포장 해제
물음표 대신 느낌표를 사용하여 선택적 변수를 선언 할 수 있습니다. 이러한 선택적 변수는 자동으로 언 래핑되며 할당 된 값을 가져 오기 위해 변수 끝에 느낌표를 추가로 사용할 필요가 없습니다. 간단한 예를 들어 보겠습니다.
var myString:String!
myString = "Hello, Swift 4!"
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Playground를 사용하여 위의 프로그램을 실행하면 다음과 같은 결과를 얻습니다.
Hello, Swift 4!
선택적 바인딩
선택적 바인딩을 사용하여 선택 사항에 값이 포함되어 있는지 확인하고 포함 된 경우 해당 값을 임시 상수 또는 변수로 사용할 수 있도록합니다.
에 대한 선택적 바인딩 if 진술은 다음과 같습니다-
if let constantName = someOptional {
statements
}
선택적 바인딩의 사용법을 이해하기 위해 간단한 예를 들어 보겠습니다.
var myString:String?
myString = "Hello, Swift 4!"
if let yourString = myString {
print("Your string has - \(yourString)")
} else {
print("Your string does not have a value")
}
Playground를 사용하여 위의 프로그램을 실행하면 다음과 같은 결과를 얻습니다.
Your string has - Hello, Swift 4!