programing tip

물음표 '?'의 의미는 무엇입니까?

itbloger 2020. 10. 6. 07:56
반응형

물음표 '?'의 의미는 무엇입니까? 신속하게? [복제]


이 질문에 이미 답변이 있습니다.

Swift 프로그래밍에서 나는 객체와 함께 몇 가지 물음표를 발견했습니다.

var window: UIWindow?

아무도 그것의 사용을 설명 할 수 있습니까?


누락 될 수있는 값에 대해 작업하기 위해 iflet함께 사용할 수 있습니다. 이러한 값은로 표시됩니다 optionals. optional값 중 하나의 값을 포함하거나 포함 nil값이 없음을 나타냅니다. 값을로 표시하려면 값 유형 뒤에 물음표 (?)를 씁니다 optional.

선택적 값이 nil이면 조건은 false이고 중괄호 안의 코드는 건너 뜁니다. 그렇지 않으면 선택적 값이 언 래핑되어 let코드 블록 내에서 언 래핑 된 값을 사용할 수 있도록 뒤에 상수에 할당됩니다 .

발췌 : Apple Inc.“The Swift Programming Language.” iBooks. https://itun.es/pk/jEUH0.l

예를 들면 :

var optionalString: String? = "Hello"
optionalString == nil

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}

이 코드에서 출력은 Hello! John Appleseed. 그리고 우리는의 값을 설정하는 경우 optionalName등을 nil. if조건 결과는 다음 false과 그 내부의 코드는 if생략받을 것입니다.


타입 뒤의 물음표 Optionals는 특별한 상수 없이도 어떤 타입에 대해서도 값이 없을 가능성을 나타내는 스위프트의 방법 인을 참조합니다 .

return nilObjective-C에서 명시 적으로 사용한 것과 동일한 상황에서 사용되며, 반환 할 개체가없는 경우 또는 개체가 아닌 값의 경우 NSNotFound. 옵션은 모든 데이터 유형에서이를 달성하는 일관된 방법을 제공합니다.

Apple에서 제공 한 iBook에서

값이 없을 수있는 상황에서 옵션을 사용합니다. 선택 사항은 다음과 같습니다.

  • 값이 있고 x와 같습니다.

또는

  • 가치가 전혀 없다

여기에 예가 있습니다. Swift의 String 유형에는 String 값을 Int 값으로 변환하려고하는 toInt라는 메서드가 있습니다. 그러나 모든 문자열을 정수로 변환 할 수있는 것은 아닙니다. 문자열 "123"은 숫자 값 123으로 변환 할 수 있지만 문자열 "hello, world"에는 변환 할 명확한 숫자 값이 없습니다.

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber is inferred to be of type "Int?", or "optional Int"

toInt 메서드가 실패 할 수 있으므로 Int가 아닌 선택적 Int를 반환합니다. 선택적 Int는 Int가 아니라 Int?로 작성됩니다. 물음표는 포함 된 값이 선택 사항임을 나타냅니다. 이는 Int 값을 포함하거나 값이 전혀 포함되지 않을 수 있음을 의미합니다. (부울 값이나 문자열 값과 같은 다른 것을 포함 할 수 없습니다. Int이거나 아예 아무것도 아닙니다.)

옵션의 언어 참조 iBook에는 전체 섹션이 있으며 책 전체에서 여러 번 언급됩니다. 스위프트 프로그래밍의 기본 개념이고 다른 많은 언어에서 널리 사용되지 않는 개념이기 때문에 철저히 살펴 봐야합니다.


유형의 선택적 Value.

예의 경우 : 유형 캐스팅 연산자의 선택적 버전 : as?, as유형 캐스팅에 대한 사용은 캐스팅에 선택적 일 수 있음을 의미 합니다.

참고 URL : https://stackoverflow.com/questions/24057171/what-the-meaning-of-question-mark-in-swift

반응형