내 코드가 지금 작동하지 않습니다. 루프에서 이름을 가져 와서 추가하려고하지만 컴파일러가 오류 메시지를 표시하고 코드가 인쇄되지 않습니다. Any
때문에신속한 3 루프 오류 (변수를 취하여 그 자체로 추가)
let names = [Double(2),3,8] as [Any]
let count = names.count
for i in 0..<count {
print((names[i]) + names[i])
}
내 코드가 지금 작동하지 않습니다. 루프에서 이름을 가져 와서 추가하려고하지만 컴파일러가 오류 메시지를 표시하고 코드가 인쇄되지 않습니다. Any
때문에신속한 3 루프 오류 (변수를 취하여 그 자체로 추가)
let names = [Double(2),3,8] as [Any]
let count = names.count
for i in 0..<count {
print((names[i]) + names[i])
}
처럼 calculatable하는 Any
캐스팅해야합니다. 두 가지 유형의 객체를 추가 할 수 없습니다. 오류 유형은 Any
입니다.
코드를 삭제하면 코드가 작동합니다.
let names = [Double(2),3,8]
let count = names.count
for i in 0..<count {
print(names[i] + names[i])
}
출력 :
4.0
6.0
16.0
더 나은 아직 :
let names = [Double(2),3,8]
for num in names {
print(num + num)
}
는 +
운영자가 없습니다.
이렇게하면 예상 한 결과를 얻을 수 있습니다.
당신이이 개 값을 추가하고 결과를 인쇄 할 경우
, 당신은as [Any]
의 사용은 이해되지 않는다
Double
let names = [Double(2),3,8] as [Any]
let count = names.count
for i in 0..<count {
if let value = names[i] as? Double {
print(value + value)
}
}
그러나 이것은 'Int'요소에 대해 작동하지 않습니다 – Hamish
오류 메시지가 무엇입니까? – Ryan
as '의 [any]의 요점은 무엇입니까? – rmaddy
글쎄,'names'는'[Any]'이므로, 엘리먼트는 * anything * 일 수 있습니다. 임의의 것들을 더할 수 없습니다.'names [i]'가'Bool' 일 경우 어떻게 될까요? – Hamish