Swift의 옵션
3552 단어 optionalsswiftiosdevelopment
내가 Swift를 배우기 초기에 기간권은 나에게 곤혹스러운 화제였기 때문에 나는 거기서부터 시작할 것이다.
선택 가능
하나optional는 가장 간단한 상황에서 어떤 물건이든지 아예 그렇지 않다.다음 그림과 같이 각 옵션의 끝에 물음표가 있기 때문에 쉽게 옵션을 선택할 수 있습니다.
var optionalString: String?
var optionalNumber: Int?
이 값은 물음표(어떤 물건)의 앞부분에서 나온 유형일 수도 있고,nil(nothing)일 수도 있다.Optionals는 Objective-C에 존재하지 않지만nil은 존재합니다. 비록 다른 의미가 있지만 (자세한 내용은 문서를 참조하십시오.)그러나, 당신이 알아야 할 것은, nil은 값이 없다는 것을 나타낸다.너는 왜 이것이 좋은 일인지 알고 싶을 것이다.왜 우리는 희망치가 0이 될 수 있습니까?허무가 무슨 소용이 있습니까?놀랍게도 대량으로 사용되고 있다.
핸드폰에 있는 알림 프로그램 같은 응용 프로그램이 있다고 상상해 보세요.알림 문자를 입력하거나 알림 날짜를 설정할 수 있습니다.데이트나 시간에 민감하지 않은 자질구레한 일들 같은 날짜 있는 알림이 필요할 수도 있다.나중에 항목에 다시 접근해서 날짜를 지정하거나, 날짜를 추가할 필요가 없다고 결정한 다음 삭제할 수도 있습니다.
이런 상황에서 어떤 알림 날짜도 존재할 수도 있고 존재하지 않을 수도 있다.익숙하게 들리시나요?is는 값이 있거나 아예 값이 없다.이 날짜는 선택할 수 있는 날짜를 사용하기에 가장 좋은 장소가 될 것이다.
그러나 옵션이 0이 될 수 없다는 사실은 조심스럽게 처리해야 한다는 것을 의미한다.코드가 값을 필요로 하는 상황에서optional을 사용하려고 하는데, optional이 마침 0이면 실행 중 오류 (붕괴) 가 발생합니다.
선택 항목을 강제로 확장하려고 시도할 때 보통 이 오류가 발생합니다.강제 확장은 다음과 같이 선택적 값의 끝에 느낌표를 추가하여 수행됩니다.
optionalString!
선택할 수 있는 선물을 상상해 보세요.너는 그것을 열어 안에 무엇이 있는지 보아야 한다.이 암시적 전개는 선택할 수 있지만 첫 번째 내부에 유효한 값이 있는지 확인하지 않습니다.예기치 않게 열려 있는 내용이 0이면 현재 내용이 폭발하고 실행 중 오류가 발생하여 충돌이 발생합니다.항상 조심스럽게optionals를 여는 것이 좋습니다.다행히도 어떤 폭발적인 선물도 피할 수 있는 몇 가지 방법이 있다.
첫 번째 방법은 0에 대해 간단한 테스트를 한 후에 힘을 전개하는 것과 관련된다.이런 상황에서 힘의 전개는 안전하다. 왜냐하면 우리는 이미'부상등'연산자를 사용하여 0을 자세히 검사했기 때문이다.나는 이것이 가장 좋은 방법이라고 추천하지 않는다. 왜냐하면 이러한 힘의 전개는 취할 수 없지만, 당신은 그것의 사용을 볼 수 있기 때문이다.
if optionalString != nil {
print(“optionalString! is safe to force unwrap because we checked for nil”)
}
두 번째 방법은 선택할 수 있는 귀속이라고 한다.이것은 옵션 값을 임시 값으로 "귀속"합니다.선택적 값이 일부 컨텐트를 포함하는 경우 임시 값을 사용할 수 있습니다.선택할 수 있는 값이 nil이면 어떤 값도 분배되지 않고 이 문장을 실행하지 않습니다.else 문장이 포함되어 있으면 이 문장을 실행하는 것으로 변경됩니다.선택할 수 있는 귀속은 일반적으로iflet이나guardlet을 통해 이루어집니다.다음 if-let 문장은 나중에 종료되고 제한된 역할 영역이 있습니다. 즉, 변수는 내부에서만 작동합니다.
if let myString = optionalString {
print(“here’s myString”)
} else {
print(“the optional string was nil)
}
값이 0 (돌아올 때) 이면 아래guardlet 문장은 미리 종료되고 더 큰 범위가 있습니다. 변수는 문장 다음에 안전하게 사용할 수 있기 때문입니다.guard let myString = optionalString else {
print(“the optional was nil”)
return
}
print(“here’s myString, it can be used now”)
당신이 어떤 귀속 방법을 사용하는지는 당신의 범위 요구와 선호에 달려 있습니다.optionals를 처리하는 세 번째 방법은 영합산자를 사용하는 것이다. 이 산자는???표시???를 사용한다.값이 있는 경우??0이 되면 오른쪽 값이 사용됩니다.
만약 nil이 존재한다면, 이 옵션을 사용하는 것이 좋습니다. 값이 부족할 때 다른 동작을 실행하는 것이 아닙니다.예를 들어 앨범 아트를 검색한다.이미지 (0) 에 액세스할 수 없는 경우 기본 이미지를 제공할 수 있습니다.
let image = albumArt ?? defaultImage
albumArt가 0이면 기본 이미지가 이미지에 할당됩니다.optionals에 대한 자세한 내용은 문서 페이지를 참조하십시오. link엔진 뚜껑 밑에 숨겨진 매거진을 선택할 수 있다는 흥미로운 사실을 발견할 수 있을 것이다.
Reference
이 문제에 관하여(Swift의 옵션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kduncanwelke/optionals-in-swift-342h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)