Быстрый readLine(), Быстрая печать()
Быстрый ввод
В Swift стандартный ввод невозможен на игровых площадках. Ни в приложении iOS по понятным причинам. Приложение командной строки — это возможный способ чтения входных данных от пользователя. readLine()
используется для чтения ввода от пользователя. Он имеет две формы:
readLine()
: способ по умолчанию.readLine(strippingNewLine: Bool)
: по умолчанию установлено значение true. Swift всегда предполагает, что новая строка не является частью ввода
readLine()
Строка по умолчанию. Добавьте следующую строку в файл main.swift
.
let str = readLine() //assume you enter your Name
print(str) //prints Optional(name)
Чтобы развернуть необязательный элемент, мы можем использовать следующий код:
if let str = readLine(){
print(str)
}
Чтение Int или Float
Чтобы прочитать ввод как Int или Float, нам нужно преобразовать возвращаемую строку из ввода в один из них.
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))")
}
}
Для Float замените инициализатор Int на Float.
Чтение нескольких входов
Следующий код считывает несколько входных данных, а также проверяет, повторяется ли какой-либо из входных данных.
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:")
}
Чтение ввода, разделенного пробелами
Следующий код считывает входные данные в виде массива, разделенного пробелами.
let array = readLine()?
.split {$0 == " "}
.map (String.init)
if let stringArray = array {
print(stringArray)
}
Функция разделения действует как разделитель пробелов. Он разделяет ввод пробелами и отображает каждый из них как строку. Наконец, они объединяются в виде массива.
Чтение 2D-массива
Следующий код считывает 2D-массив
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)
В приведенном выше коде мы можем создать 4 подмассива внутри массива. Если на каком-либо этапе мы нажмем Enter, ничего не вводя в строку, она будет считаться пустым подмассивом.
Быстрая печать()
Мы часто использовали оператор print()
в наших стандартных выводах. На самом деле функция печати выглядит следующим образом: за оператором print(_:separator:terminator:)
print()
следует разделитель новой строки по умолчанию.
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|
- терминатор добавляется в конце каждого оператора печати.
- разделитель добавляется между выходными значениями.
Объединение строки со значениями Мы используем \(value_goes_here)
для добавления значений внутрь строки.
var value = 10
print("Value is \(value)") // Value is 10
На этом мы заканчиваем этот учебник по стандартному вводу и выводу Swift.