물음표 '?'의 의미는 무엇입니까? 신속하게? [복제]
이 질문에 이미 답변이 있습니다.
- Swift의 선택적 값은 무엇입니까? 13 답변
Swift 프로그래밍에서 나는 객체와 함께 몇 가지 물음표를 발견했습니다.
var window: UIWindow?
아무도 그것의 사용을 설명 할 수 있습니까?
누락 될 수있는 값에 대해 작업하기 위해
if
와let
함께 사용할 수 있습니다. 이러한 값은로 표시됩니다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 nil
Objective-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
'programing tip' 카테고리의 다른 글
클래스 기반보기의 장점은 무엇입니까? (0) | 2020.10.06 |
---|---|
게시 중 새 사전 컴파일 옵션은 MVC4 응용 프로그램에 어떤 영향을 미칩니 까? (0) | 2020.10.06 |
관련 유형과 제네릭 유형을 사용하는 것이 적절한시기는 언제입니까? (0) | 2020.10.06 |
Java에 OAuth 2.0 Provider 구현이 있습니까? (0) | 2020.10.06 |
querySelector 직계 자식 검색 (0) | 2020.10.05 |