Wie Sie rechnen, zwischen int-und float-in Swift?
Dies ist mein Erster Tag in Swift Programmieren und bis jetzt sind wir mit Objective C. ich habe versucht, schreiben Sie einfachen Zusatz-Programm funktioniert es. Wie,
var i = 10
var j = 10
var k = i + j
println(k)
Aber wenn ich ändern eines der Werte zu schweben es gibt Fehler.
var i = 10
var j = 10.4
var k = i + j
println(k)
Fehler: main.swift:13:11: Konnte nicht finden, eine überlastung für '+' ,
akzeptiert die angegebenen Argumente
Nun habe ich Google-Suche und versucht, einige Sache, z.B. Double(i+j)
, aber es funktioniert nicht. Swift sollte implizit konvertiert int zu float in diesem Fall, ist es nicht?
Bitte schlagen, wenn ich dabei keine Fehler Verständnis Swift Sprache.
InformationsquelleAutor Pranit Kothari | 2014-06-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nachdem, was Sie möchten, dass Ihre Ergebnis zu sein, sollten Sie es konvertieren in den entsprechenden Typ verwenden, die Arten init-Methode.
zB.
Wenn ich eine Doppel-zum Beispiel in meinem Ergebnis
wenn ich will, eine ganze Zahl statt, bitte beachten Sie das doppelte gekürzt.
Das problem sehe ich in deinem Beispiel ist man versucht zu tun, ein Vorgang hinzufügen und konvertieren Sie es dann aber, dass beide Werte benötigt werden, die gleichen, bevor Sie führen Sie die addition.
Apple hat es ruhig streng zu vermeiden-Typ-mis-match-und Konvertierungs-Fehler. Manchmal kann dies ein wenig "zu streng" für dev, die aus anderen Sprachen, ich ärgerte mich zuerst, aber ich habe mich daran gewöhnt.
swift zu begrenzt. Beispiel: 2 * 3.14 => 3.14 + 3.14 ich hoffe, in der Zukunft diese Arbeit ohne Konvertierung
InformationsquelleAutor TheLazyChap
Definieren Sie Ihre eigenen Betreiber...
...aber ich denke, das geht gegen den Geist der Sprache (und wie @TheLazyChap sagt, es hängt davon ab, was Sie wollen, die können nicht immer gleich sein).
Schön hacky! Dies ist beeindruckend, sondern untergräbt die strenge Typisierung von Swift
Ich habe so zu sagen in den original-post!
InformationsquelleAutor Grimxn
versuchen Sie dies:
InformationsquelleAutor MarcS