Bitte markieren Sie nicht als Duplikat, bis Sie die ganze Sache gelesen haben. Dies ist spezifisch für Swift 3.Wie konvertiert Swift 3 Ausgabe von readLine() zu Integer?
Ich habe Funktionen, die Parameter wie Ints, Floats, etc. Ich möchte die Ausgabe von readLine() nehmen und Swift akzeptieren die Ausgabe von readLine() als diese Typen , aber leider gibt readLine() einen String aus? und wenn ich versuche, es zu konvertieren, sagt es mir, dass es nicht ausgepackt ist. Ich brauche Hilfe. Ich benutze Ubuntu 16.04.
Zum Beispiel, wenn ich area(width: 15, height: 15)
hätte, wie würde ich 15 und 15 durch zwei Konstanten ersetzen, die readLine() oder ein Äquivalent zu readLine() enthalten, um Eingaben von einem Benutzer im Terminal zu akzeptieren?
Beachten Sie auch, dass das Programm, das ich schreibe, speziell Mathematik tut, da die meisten Leute mit Strings zufrieden sind, dies ist buchstäblich ein CLI-basierter Rechner.
EDIT 1 (lol) Okay, hier ist eine genauere Erklärung von oben. Der folgende Code wird die Fläche eines Trapezes drucken:
import Foundation
func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) {
let inside = baseOne + baseTwo
let outside = 0.5 * height
let result = outside * inside
print("Area of Trapezoid is \(result)")
}
areaTrapezoid(height: 10, baseOne: 2, baseTwo: 3)
So, das Trapez eine Höhe von 10 Einheiten hat, und zwei Basen, die Längen von 2 bzw. 3 haben. Allerdings möchte ich etwas tun:
import Foundation
func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) {
let inside = baseOne + baseTwo
let outside = 0.5 * height
let result = outside * inside
print("Area of Trapezoid is \(result)")
}
let h = readLine()
areaTrapezoid(height: h, baseOne: 2, baseTwo: 3)
Außer, wie bereits offensichtlich ist, readline() ausgibt ein optionaler String, und kein Float. Ich möchte, dass der Benutzer in der Lage ist, die Zahlen per CLI in einer Art interaktiver Weise einzugeben, wenn Sie so wollen. Ich lerne gerade Swift, aber ich habe etwas ähnliches in C++ gemacht, als ich diese Sprache gelernt habe. Vielen Dank für Ihre Hilfe.
ich nicht wusste ich eigentlich kommentieren könnte! Okay, sehen Sie sich das Update an. Gilt das dort? –
Ja, alle gleich. Sie können 'Float()' oder 'Double()' genauso verwenden wie 'Int()' in meinem Beispiel, um von der String-Eingabe zu konvertieren. – Moritz
Ausprobiert und wahr, Bruder. Danke, ich dachte nicht, dass es einen einfachen Weg geben würde! –