Swift readLine(), Swift print()
Einführung
In diesem Tutorial werden wir besprechen, wie man die Standard-Eingabe in Swift vom Benutzer liest und die verschiedenen Möglichkeiten, die Ausgabe auf den Bildschirm zu drucken. Swift print() ist die Standardfunktion, um eine Ausgabe auf dem Bildschirm anzuzeigen. Lassen Sie uns beginnen, indem wir ein neues Kommandozeilenanwendungsprojekt in XCode erstellen.
Swift-Eingabe
In Swift ist die Standard-Eingabe in Playgrounds nicht möglich. Auch nicht in iOS-Anwendungen aus offensichtlichen Gründen. Eine Kommandozeilenanwendung ist der mögliche Weg, um Eingaben vom Benutzer zu lesen. readLine() wird verwendet, um die Eingabe vom Benutzer zu lesen. Es hat zwei Formen:
- readLine() : Die Standardmethode.
- readLine(strippingNewLine: Bool) : Dies ist standardmäßig auf true gesetzt. Swift geht immer davon aus, dass der Zeilenumbruch kein Teil der Eingabe ist
Die readLine()-Funktion gibt standardmäßig immer einen optionalen String zurück. Fügen Sie die folgende Zeile in Ihre main.swift-Datei ein.
let str = readLine() //assume you enter your Name
print(str) //prints Optional(name)
Um das optionale Element auszupacken, können wir den folgenden Code verwenden:
if let str = readLine(){
print(str)
}
Einlesen eines Int oder eines Float
Um die Eingabe als Int oder Float zu lesen, müssen wir den zurückgegebenen String aus der Eingabe in einen dieser Typen umwandeln.
if let input = readLine()
{
if let int = Int(input)
{
print("Entered input is \(int) of the type:\(type(of: int))")
}
else{
print("Entered input is \(input) of the type:\(type(of: input))")
}
}
Für Float ersetzen Sie den Int-Initialisierer durch Float.
Lesen mehrerer Eingaben
Der folgende Code liest mehrere Eingaben und prüft auch, ob eine der Eingaben wiederholt wird.
while let input = readLine() {
guard input != "quit" else {
break
}
if !inputArray.contains(input) {
inputArray.append(input)
print("You entered: \(input)")
} else {
print("Negative. \"\(input)\" already exits")
}
print()
print("Enter a word:")
}
Die guard let-Anweisung wird verwendet, um die Schleife zu verlassen, wenn eine bestimmte Zeichenfolge eingegeben wird. Die print()-Funktion gibt wie üblich die Ausgabe auf dem Bildschirm aus. Die aktuelle Eingabe wird im Array überprüft; wenn sie nicht existiert, wird sie hinzugefügt. Ein Beispiel für das Ergebnis des obigen Codes, wenn er in der Kommandozeile in Xcode ausgeführt wird, ist unten gegeben.
Eingabe getrennt durch Leerzeichen lesen
Der folgende Code liest die Eingaben in Form eines Arrays, das durch Leerzeichen getrennt ist.
let array = readLine()?
.split {$0 == " "}
.map (String.init)
if let stringArray = array {
print(stringArray)
}
Die Split-Funktion dient als Trennzeichen für Leerzeichen. Sie teilt die Eingabe durch Leerzeichen und ordnet jedes davon als einen String zu. Schließlich werden sie in Form eines Arrays zusammengefügt.
Lesen eines 2D-Arrays
Der folgende Code liest ein 2D-Array.
var arr = [[Int]]()
for _ in 0...4 {
var aux = [Int]()
readLine()?.split(separator: " ").map({
if let x = Int($0) {
aux.append(x)
}
else{
print("Invalid")
}
})
arr.append(aux)
}
print(arr)
Im obigen Code können wir 4 Unterarrays innerhalb eines Arrays erstellen. Wenn wir zu irgendeinem Zeitpunkt Enter drücken, ohne in der Zeile etwas einzugeben, wird dies als leeres Unterarray behandelt.
Swift print()
Wir haben oft die print()-Anweisung in unseren Standardausgaben verwendet. Die Print-Funktion sieht eigentlich so aus: print(_:separator:terminator:). Die print()-Anweisung wird standardmäßig von einem Zeilenumbruch-Terminator gefolgt.
print(1...5) //// Prints "1...5"
print(1.0, 2.0, 3.0, 4.0, 5.0) //1.0 2.0 3.0 4.0 5.0
print(„1″,“2″,“3“, separator: „:“) //1:2:3
for n in 1…5 { print(n, terminator: „|“) } //prints : 1|2|3|4|5|
- Der Terminator wird am Ende jeder Print-Anweisung hinzugefügt.
- Der Separator wird zwischen den Ausgabewerten hinzugefügt.
String mit Werten verketten
Wir verwenden \(value_goes_here), um Werte in einen String einzufügen.
var value = 10
print("Value is \(value)") // Value is 10
Damit endet dieses Tutorial über Swift Standard Eingabe und Ausgabe.