Swift编程入门:掌握readLine()与print()输入输出函数

快速输入
在Swift中,Playgrounds不能使用标准输入。iOS应用程序也不能使用标准输入,这是显而易见的原因。命令行应用程序是从用户读取输入的可能方式。readLine()用于从用户读取输入。它有两种形式:
- readLine() : 默认方式。
- readLine(strippingNewLine: Bool) : 默认设置为true。Swift始终假设换行符不是输入的一部分
在main.swift文件中添加以下代码行,readLine()函数默认始终返回一个可选的字符串。
let str = readLine() //假设你输入你的名字
print(str) //打印 Optional(name)
为了解开可选项,我们可以使用以下代码:
if let str = readLine(){
print(str)
}
阅读一个整数或浮点数
要将输入转换为Int或Float,我们需要将返回的字符串从输入中转换为其中之一。
if let input = readLine()
{
if let int = Int(input)
{
print("输入的值是 \(int),类型为:\(type(of: int))")
}
else{
print("输入的值是 \(input),类型为:\(type(of: input))")
}
}
将Int初始化器替换为Float即可转换为浮点数。
阅读多个输入
下面的代码读取多个输入,并且检查输入是否有重复。
while let input = readLine() {
guard input != "quit" else {
break
}
if !inputArray.contains(input) {
inputArray.append(input)
print("你输入了:\(input)")
} else {
print("重复。\"\(input)\"已经存在")
}
print()
print("输入一个单词:")
}
当输入特定字符串时,使用guard let语句来退出循环,通常使用print()将输出打印到屏幕上。当前输入在数组中进行检查,如果不存在,则将其添加。在Xcode中在命令行上运行上述代码的示例结果如下所示。
读取由空格分隔的输入
以下代码以空格分隔的数组形式读取输入。
let array = readLine()?
.split {$0 == " "}
.map (String.init)
if let stringArray = array {
print(stringArray)
}
split函数作为空格的分隔符。它通过空格将输入分割,并将每个部分映射为字符串。最后,它们以数组的形式合并在一起。
读取一个二维数组
以下代码读取一个二维数组。
var arr = [[Int]]()
for _ in 0...4 {
var aux = [Int]()
readLine()?.split(separator: " ").map({
if let x = Int($0) {
aux.append(x)
}
else{
print("无效")
}
})
arr.append(aux)
}
print(arr)
在上面的代码中,我们可以在一个数组内创建4个子数组。如果在任何阶段按下回车键而不在该行中输入任何内容,它将被视为一个空的子数组。
轻巧的print()
我们经常在标准输出中使用print()语句。实际上,print()函数的形式是这样的:print(_:separator:terminator:) 默认情况下,print()语句后面跟着一个默认的换行终止符。
print(1...5) //// 打印 "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: "|")
}
//打印 : 1|2|3|4|5|
- terminator在每个print语句的末尾添加。
- separator在输出值之间添加。
连接字符串与值 我们使用 \(value_goes_here) 来在字符串中添加值。
var value = 10
print("值是 \(value)") // 值是 10
这个教程介绍了Swift标准输入输出的内容,并告一段落。