swift의 빈 연산자(Nil Coalescing Operator)

1700 단어 iOS 개발swift
공합 연산자(a ?? b는 선택할 수 있는 유형a에 대해 공판단을 하고 a에 값이 포함되면 봉인을 해제하며 그렇지 않으면 기본값b을 되돌려줍니다.이 연산자에는 두 가지 조건이 있습니다.
1. 표현식a은 Optional 유형이어야 합니다.
2. 기본값b의 유형은 a 스토리지 값의 유형과 일치해야 합니다.
빈 병합 연산자는 다음 코드에 대한 간단한 표현입니다.
a != nil ? a! : b

상술한 코드는 세 개의 연산자를 사용했다.선택할 수 있는 형식 a 의 값이 비어 있지 않을 때, 강제 봉인 (a! 접근 a 의 값이 비어 있을 때 a 의 값이 비어 있을 때 기본값 b를 되돌려줍니다.의심할 여지없이 공합 연산자(??는 조건 판단과 봉인 해제 두 가지 행위를 더욱 우아하게 봉인하는 방식을 제공하여 간결하고 읽을 만하다.
주의: a가 비공가(non-nil라면 값b은 평가되지 않습니다.이것이 바로 이른바 단락구치라는 것이다.
다음 예제에서는 빈 병합 연산자를 사용하여 기본 색상 이름과 선택할 수 있는 사용자 정의 색상 이름 중에서 선택할 수 있습니다.
let defaultColorName = "red"
var userDefinedColorName:String?   //    nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
//userDefinedColorName     ,  colorNameToUse   `red`
userDefinedColorName 변수는 선택할 수 있는 문자열 형식으로 정의되고 기본값은nil입니다.userDefinedColorName는 선택할 수 있는 유형이기 때문에 우리는 공합 연산자를 사용하여 그 값을 판단할 수 있다.이전 예에서 빈 연산자를 통해 colorNameToUse 라는 변수에 문자열 형식의 초기 값을 부여했다.userDefinedColorName값이 비어 있기 때문에 표현식userDefinedColorName ?? defaultColorName은 기본값인 red을 되돌려줍니다.
다른 경우, 비공식 값 ((non-niluserDefinedColorName 에 분배하고, 다시 공합 연산을 실행하는데, 연산 결과는 기본값이 아닌 userDefaultColorName 에 봉인된 값이다.
userDefinedColorName = "green"
colorNameToUse = userDefinedColorName ?? defaultColorName
//userDefinedColorName  ,  colorNameToUsede     

좋은 웹페이지 즐겨찾기