swift打印可选变量

前端之家收集整理的这篇文章主要介绍了swift打印可选变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试着用这些代码
  1. class Student {
  2. var name: String
  3. var age: Int?
  4.  
  5. init(name: String) {
  6. self.name = name
  7. }
  8.  
  9. func description() -> String {
  10. return age != nil ? "\(name) is \(age) years old." : "\(name) hides his age."
  11. }
  12. }
  13.  
  14. var me = Student(name: "Daniel")
  15. println(me.description())
  16. me.age = 18
  17. println(me.description())

上面的代码产生如下

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

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

  1. Daniel is 18 years old.

先谢谢你。

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

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

  1. if let a = age {
  2. // a is an Int
  3. }

如果您确定Optional包含对象,则可以使用“强制解包”:

  1. let a = age!

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

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

猜你在找的Swift相关文章