Menu
CoddyTech

什么是可选类型

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 11 课,共 86 课。

有时,变量可能根本没有值。在 Swift 中,我们使用可选类型来表示没有值。可选类型表示“有一个值,它等于 x”,或者“根本没有值”。

要声明可选类型,请在类型后添加问号 ?:

var nickname: String? = "Alex"
var age: Int? = nil

在上面的示例中,nickname 的值是 "Alex",而 age 的值是 nil:这是 Swift 表示“没有值”的方式。普通变量不能是 nil,但可选值可以。

把可选值想象成一个盒子,里面可能装着东西,也可能是空的。使用盒子里的内容前,你需要先检查里面是不是真的有东西。这是 Swift 中一项重要的安全功能,可以帮助你避免因意外缺少值而导致程序崩溃。

var score: Int? = 100
print(score) // Optional(100)

score = nil
print(score) // nil

注意,当你打印一个有值的可选值时,它会显示 Optional(100),而不只是 100。要访问其中的实际值,你需要解包这个可选值,我们会在接下来的课中讲解。

challenge icon

挑战

简单

编写一个函数 createOptional,它接收一个数字,并返回一个字符串,显示这个数字以 optional 形式打印时的样子。

重要:这个函数返回的是 String。你要编写的是一个看起来像 optional 的文本,而不是返回一个实际的 optional 值。

打印包含一个值的 optional 时,Swift 会按 Optional(value) 的格式显示它。

函数语法提示:在 Swift 中,返回值的函数使用 -> 箭头指定返回类型,并使用 return 关键字返回结果。例如:

func myFunction(param: Int) -> String {<br>    return "result"<br>}

你可以使用字符串插值来构建返回的字符串:"Optional(\(value))":\(value) 部分会将数字直接插入字符串。

参数:

  • value(Int):要转换为 optional 格式的数字

返回值:格式为 Optional(value) 的字符串,其中 value 是提供的数字。

示例:如果输入是 100,则返回 "Optional(100)"

亲手试试

func createOptional(value: Int) -> String {
    // 返回一个看起来像可选值的 String,而不是真正的可选值。
    // 使用字符串插值将数字插入括号中。
    return "Optional()"
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器