2017-04-21 3 views
0

Mein Code funktioniert momentan nicht. Ich versuche, Namen zu nehmen und es selbst in der Schleife hinzuzufügen, aber der Compiler gibt mir eine Fehlermeldung und der Code wird nicht gedruckt.swift 3 loop error (Variable nehmen und selbst hinzufügen)

let names = [Double(2),3,8] as [Any] 
let count = names.count 
for i in 0..<count { 
    print((names[i]) + names[i]) 
} 
+1

Was ist die Fehlermeldung? – Ryan

+2

Was ist der Sinn des 'as [Any]'? – rmaddy

+1

Nun 'Namen' ist ein' [Any] ', also könnten die Elemente, naja, * alles * sein. Du kannst keine willkürlichen Dinge addieren - was ist, wenn 'Namen [i]' ein 'Bool' war? – Hamish

Antwort

0

Die Verwendung von as [Any] macht keinen Sinn. Sie können nicht zwei Objekte vom Typ Any hinzufügen, worüber Ihr Fehler wahrscheinlich ist.

Einfach fallen lassen und Ihr Code funktioniert.

let names = [Double(2),3,8] 
let count = names.count 
for i in 0..<count { 
    print(names[i] + names[i]) 
} 

Ausgang:

4,0
6,0
16,0

Besser noch:

let names = [Double(2),3,8] 
for num in names { 
    print(num + num) 
} 
1

Da Any hat nicht + Betreiber.

Dadurch erhalten Sie das Ergebnis, das Sie erwartet haben.

Wenn Sie zwei Werte addieren und das Ergebnis zu drucken, müssen Sie Any werfen wie auf berechenbare 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) 
    } 
} 
+0

Aber das wird nicht für die Int-Elemente funktionieren – Hamish