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

swift input output project

快速输入

在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标准输入输出的内容,并告一段落。

bannerAds