2016-07-24 1 views
4

Swift에서 "let"은 상수를 정의합니다. 문제 없어. 그래서 "let foo = 42"와 "let foo : Int"를 이해하십시오. 하지만 간단히 "let foo"가 할당이나 타입 지정없이 쓰여지는 경우가 몇 가지 있습니다. 예를 들어 "case bar (let foo) : ..."스위프트 : 사례 foo (바 표시) : 유형이나 과제가 없습니까?

"let foo"자체가 그러한 코드에있는 경우 정확히 무엇이 발생합니까?

+0

표시 할 수 있으며 실행 가능한예요? – Alexander

+0

코드의 어딘가에 'case bar (Int)'와 같은 사례 선언이있을 것입니다. –

답변

3

이 표기법은 연관된 열거 형 값을 바인딩하는 데 사용됩니다.

예를 들어이 걸릴 :

let anOptionalInt: Int? = 15 

switch (anOptionalInt) { 
case .Some(let wrappedValue): 
    print(wrappedValue) 

case .None: 
    print("the optional is nil") 
} 

Optional가 열거하기 때문에이 작동합니다. .Some.None :

let anOptionalInt: Optional<Int> = Optional.Some(15) 

두 가지 경우가 있습니다 : 첫 번째 표현은 같이 쓸 수있다. .Some에는 Wrapped이라는 연결된 값이 있는데, .None 대/소문자에는 연결된 값이 없습니다.

실제로 Optional.Nonenil과 동일합니다.