gpt4 book ai didi

swift - 打印可选变量

转载 作者:行者123 更新时间:2023-11-30 10:39:13 25 4
gpt4 key购买 nike

我正在尝试使用这些代码行

class Student {
var name: String
var age: Int?

init(name: String) {
self.name = name
}

func description() -> String {
return age != nil ? "\(name) is \(age) years old." : "\(name) hides his age."
}
}

var me = Student(name: "Daniel")
println(me.description())
me.age = 18
println(me.description())

以上代码生成如下

Daniel hides his age.
Daniel is Optional(18) years old.

我的问题是为什么那里有可选(18),我如何删除可选并仅打印

Daniel is 18 years old.

最佳答案

你必须了解Optional到底是什么。许多 Swift 初学者认为 varage: Int? 意味着age是一个Int,它可能有值,也可能没有值。但这意味着年龄是一个可选值,它可能包含也可能不包含 Int。

在您的 description() 函数中,您不会打印 Int,而是打印Optional。如果你想打印 Int,你必须打开Optional。您可以使用“可选绑定(bind)”来解包可选:

if let a = age {
// a is an Int
}

如果你确定Optional持有一个对象,你可以使用“强制展开”:

let a = age!

或者在您的示例中,由于您已经在描述函数中进行了 nil 测试,因此您可以将其更改为:

func description() -> String {
return age != nil ? "\(name) is \(age!) years old." : "\(name) hides his age."
}

关于swift - 打印可选变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com