코드 예제는 내가 매우 폐쇄 본체 내부의 라인 var number = number
에 대해 혼동하고있어 swift office document클로저 내부의 변수 정의를 재정의 할 수 있습니까?
let digitNames = [
0: "Zero", 1: "One", 2: "Two", 3: "Three", 4: "Four",
5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine"
]
let numbers = [16, 58, 510]
let strings = numbers.map {
(number) -> String in
var number = number //What is this!
var output = ""
while number > 0 {
output = digitNames[number % 10]! + output
number /= 10
}
return output
}
에서 온다. 같은 범위의 변수를 어떻게 "다시 선언 할"수 있습니까?
을 을 제거 할 것 number) -> String'' number' 매개 변수는 상수입니다. 그래서 당신은 그것으로부터 var를 만들어 내고 가변적이게됩니다. 범위에서 변경 가능한 값이 사용되고 다른 값은 무시됩니다. 이러한 종류의 "재 선언"은 함수 범위 내에서 함수 매개 변수와 만 작동합니다. – Moritz
@EricD : 이것은 다른 로컬 범위에서도 작동합니다. 함수 매개 변수뿐 아니라. –
@MartinR 스위프트 3에서이 속성과 관련하여 변경된 사항이 있습니까? – SLN