[swift]オフセット、オフセットバインド
Keyword
傍観者(オプション)
値打ちがあるか、値打ちがないか.
// 옵셔널 : 선택적인
// 값이 있을수도 없을 수도 있음.
//
var name: String?
var optionalName: String? = "KSW"
print(optionalName)
// 에러 코드 (타입 에러)
// 스위프트는 안정성을 위해 컴파일 에러를 낸다.
// var name2: String = optionalName
->オプションの包装紙を剥離するプロセス.
通関を取り消す
傍観者バインド:オプション包装紙から値を抽出するプロセス
通関の取り消し方法
1.明示解除
SWIFTコード
// 명시적 해제
// 강제 해제 (느낌표 붙이기. 위험함)
var number: Int? = 3
print(number)
print(number!)
// 비강제 해제 1 (if문 사용 옵셔널 바인딩)
// **** 이 문법이 낯설다.
if let result = number {
print(result)
} else{
print("nil")
}
// 비강제 해제 2 (gaurd문 사용 옵셔널 바인딩)
// guard 문을 사용해서도 옵셔널 바인딩을 할 수 있다.
// guard 문에 대한 글 포스팅 예정.
// 컴파일러에 의한 자동 해제
// 옵셔널 값은 비교연산자를 이용해 다른 값과 비교하면,
// 컴파일러가 자동적으로 옵셔널 값을 해제 시켜준다.
let value: Int? = 6
if value == 6 {
print("value가 6입니다.")
} else {
print("value가 6이 아닙니다.")
}
// 묵시적 옵셔널 해제
// 값을 사용할 때는 자동으로 옵셔널이 해제됨
let str = "12"
var strToInt: Int? = Int(str)
// Int() 함수는 매개변수에 정수로 변환될 수 없는 값이 오면
// nil을 반환하기 때문에 옵셔널 타입으로 선언해야 한다.
print(strToInt)
// 선언시에 ! 키워드를 사용하면 묵시적으로 옵셔널 해제를 해준다.
var strToInt2: Int! = Int(str)
print(strToInt2+1)
Reference
この問題について([swift]オフセット、オフセットバインド), 我々は、より多くの情報をここで見つけました https://velog.io/@heyksw/Swift-옵셔널-옵셔널-바인딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol