# Swift 基本输入和输出

> 原文： [https://www.programiz.com/swift-programming/basic-input-output](https://www.programiz.com/swift-programming/basic-input-output)

#### 在本文中，您将学习在 Swift 中显示输出和获取输入的不同方法。

## Swift 基本输出

您可以简单地使用`print(_:separator:terminator:)`函数将输出发送到标准输出（屏幕）。 请参阅 [Swift 函数](/swift-programming/functions "Swift functions")文章，以了解 Swift 中的函数。

函数`print(_:separator:terminator:)`接受三个参数。

*   `item`要在控制台中打印的项目。 它可以接受多个项目。
*   `separator`在每个项目之间打印的字符串。 默认值为单个空格`(" ")`。
*   `terminator`在打印所有项目之后要打印的字符串。 默认值为换行符`("\n")`。

由于最后两个参数（`separator`，`terminator`）已指定了默认值，因此在调用打印函数时不必强制使用它们。

* * *

### 示例 1：使用简单的`print()`函数打印到屏幕

```swift
print("Hello, World!")
print("I love Swift.") 
```

运行该程序时，输出为：

```swift
Hello, World!
I love Swift. 
```

在上述程序中，`print("Hello, World!")`输出字符串字面值`"Hello, World!"`。

您可以看到，在打印`"I love Swift."`时，它还会更改行（添加换行符）。因为打印方法的参数`terminator`具有默认值`\n`（新行）。

因此，语句`print("I love Swift.")`在新行中输出消息。

* * *

### 示例 2：打印常量，变量和字面值

```swift
var helloMsg = "Hello, World!"
print(helloMsg)
print(123.45) 
```

运行该程序时，输出为：

```swift
Hello, World!
123.45 
```

您可以通过直接在打印函数中添加变量或常量名称来打印变量或常量的值。 在上面的程序中`print(helloMsg)`输出变量`helloMsg`的值`Hello, World!`。

您也可以在`print`语句中插入字面值。 在语句`print(123.45)`中，它采用不带双引号的浮点字面值`123.45`并将其打印出来。

* * *

### 示例 3：使用终止符参数进行打印而没有行中断

如果要打印而没有换行符，则需要在`print`函数的终止符参数中传递一个空字符串，如下所示：

```swift
print("Hello, World!", terminator: "")
print("I love Swift.")
print("I also love Taylor Swift.") 
```

运行该程序时，输出为：

```swift
Hello, World!I love Swift.
I also love Taylor Swift. 
```

在上述程序中，`terminator`是在打印完所有项目之后打印的字符串。

我们传递了一个空字符串作为终止符（默认为换行符`\n`）。 因此，打印第一条语句时无需添加新行，并且语句`print("I love Swift.")`在同一行中显示消息。

由于`print("I love Swift.")`函数添加了换行符，因此语句`print("I also love Taylor Swift")`在新行中输出。

* * *

### 示例 4：使用单次打印函数打印多个项目

您还可以在单​​个打印语句中打印多个项目，并在这些项目之间添加`separator`，如下所示：

```swift
print("Hello, World!", 2020, "See you soon", separator: ". ")
```

运行该程序时，输出为：

```swift
Hello, World!. 2020\. See you soon
```

在上面的程序中，我们在打印语句中添加了不同的数据类型，并用逗号分隔。

要打印的项目是字符串`"Hello, World!"`，整数 **2020** 和字符串`"See you soon"`。

我们还在`separator`参数中传递了`"."`值。 这将在每个项目之间插入点字符（`.`）。 这样您就可以看到输出以分隔符分隔，后跟一个空格。

* * *

### 示例 5：打印多行

如果要使用单个打印语句多行打印，则可以在打印语句中使用转义序列`\r`，即回车符：

```swift
print("Hello, \rWorld!")
```

运行该程序时，输出为：

```swift
Hello, 
World! 
```

* * *

### 示例 6：使用三引号打印多行

在 Swift 中，有一种更好的方法可以在单个`print`语句中输出多行消息。 您必须使用多行字符串字面值。 这是通过在多行字符串字面值中使用三引号将字符添加为

```swift
print("""
Hello,
World!
""") 
```

运行该程序时，输出为：

```swift
Hello,
World! 
```

* * *

### 示例 7：使用字符串插值打印变量

您还可以通过使用字符串插值将变量或常量的值添加到字符串字面值中，即，将变量包装在以反斜杠`(\)`为前缀的一对括号中。

```swift
var helloMsg = "Hello, World!"
print("I have a message \(helloMsg)") 
```

运行该程序时，输出为：

```swift
I have a message Hello, World!
```

语句`print("I have a message \(helloMsg)")`将变量`helloMsg`的值包装为字符串字面值中的`\(helloMsg)`，从而插入该值。 因此，该语句输出`I have a message Hello, World!`。

* * *

## Swift 基本输入

如果要在 Swift 中从用户那里获取输入，则必须在不使用 UIKit 框架的情况下才能在 Xcode 游乐场上进行输入。

但是，使用 Swift 框架，您可以在 Xcode 中创建一个命令行应用，以从用户那里获取输入。 您可以参阅 *Swift 命令行应用*文章，以使用 Xcode 创建命令行应用。

这是您可以用来获取用户输入的代码。

### 示例 8：使用`readLine()`从用户那里获取输入

```swift
print("Please Enter your favorite programming language", terminator: ".")
let name = readLine()
print("Your favorite programming language is \(name!).") 
```

运行该程序时，输出为：

```swift
Please Enter your favorite programming language.
Swift
Your favorite programming language is Swift. 
```

在上述程序中，`print`函数输出`Please Enter your favorite programming language.`。 语句`let name = readLine()`在调试区域中等待用户输入。

如果键入`"Swift"`并按`Enter`，则`readLine`函数将该字符串分配给常量`name`，并将输出显示为`Your favorite programming language is Swift. `。

由于`readLine`函数返回一个可选字符串，因此我们已强制将常量解压缩为`print("Your favorite programming language is \(name!)")`语句中的`name`。

您将在文章中了解有关可选的更多信息： [Swift 可选的](/swift-programming/optionals "Swift Optionals")。