Swift:为什么我所有的可选变量看起来像 "Optional(305.502)"
Swift: Why all my optional variable looks like "Optional(305.502)"
我刚刚开始学习 swift。我对可选类型有点困惑。我有一些变量 var theOptVar: Float?
它可以是 nil 所以我用 ?
.
使它成为可选的
但是当我想在 UI 的某处获取它时,我看到 Optional(305.502)
.
有没有办法在 UILabel
上有可选的 var 而没有 "Optional" 字?
它显示“可选”,因为您已将其数据类型从 Float
更改为 Optional Float
。
因此,无论值是什么,都会自动包装到 Optional 文本中。
因此,如果您不想显示可选词,只需从中提取值即可。
为此添加 !
标记。 这是强制展开。
例如
var temp : Float?
temp = 60.5
println(Value \(temp!))
您可以使用 Rob 描述的隐式解包(aFloat!
,如果 aFloat 为 nil 会崩溃)
或
可选绑定
if let requiredFloat = aFloat
{
//Code that only runs if aFloat is != nil
println("aFloat = \(requiredFloat)")
}
else
{
println("aFloat = nil")
}
可选绑定为您做了两件事:它检查可选是否为 nil,如果为 nil 则跳过代码块。如果它不是零,它将可选分配给一个必需的常量,您可以在您的 if 代码中使用它。
我刚刚开始学习 swift。我对可选类型有点困惑。我有一些变量 var theOptVar: Float?
它可以是 nil 所以我用 ?
.
使它成为可选的
但是当我想在 UI 的某处获取它时,我看到 Optional(305.502)
.
有没有办法在 UILabel
上有可选的 var 而没有 "Optional" 字?
它显示“可选”,因为您已将其数据类型从 Float
更改为 Optional Float
。
因此,无论值是什么,都会自动包装到 Optional 文本中。
因此,如果您不想显示可选词,只需从中提取值即可。
为此添加 !
标记。 这是强制展开。
例如
var temp : Float?
temp = 60.5
println(Value \(temp!))
您可以使用 Rob 描述的隐式解包(aFloat!
,如果 aFloat 为 nil 会崩溃)
或
可选绑定
if let requiredFloat = aFloat
{
//Code that only runs if aFloat is != nil
println("aFloat = \(requiredFloat)")
}
else
{
println("aFloat = nil")
}
可选绑定为您做了两件事:它检查可选是否为 nil,如果为 nil 则跳过代码块。如果它不是零,它将可选分配给一个必需的常量,您可以在您的 if 代码中使用它。