swift打印可选变量

前端之家收集整理的这篇文章主要介绍了swift打印可选变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试着用这些代码
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)那里,如何删除可选和jus打印

Daniel is 18 years old.

先谢谢你。

你必须明白什么是可选的。许多Swift初学者认为var年龄:int?意味着年龄是一个Int,它可能有也可能没有值。但它意味着年龄是一个可选的,可能持有或不持有国际。

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

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相关文章