出于某种原因,我无法在Swift中使用可选项。他们似乎总是nil
。要么某处有错误,要么我不理解选项如何运作。这就是我正在做的事情:
首先,我打开一个Swift REPL:/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
这是我在REPL中输入的内容(与返回值相结合):
1> var perhapsInt: Int?
perhapsInt: Int? = nil
2> perhapsInt = 1
3> if let actualInt = perhapsInt {
4. println("here")
5. }
6> perhapsInt
$R2: Int? = nil
永远不会打印 "here"
,因为let actualInt = perhapsInt
评估为false,因为行perhapsInt = 1
完全没有做任何事情,因此perphapsInt
保留其值nil
如果我在初始化期间将perhapsInt
设置为值,则会出现同样的情况:
1> var perhapsInt: Int? = 5
perhapsInt: Int? = 5
2> perhapsInt
$R1: Int? = nil
有什么想法吗?
答案 0 :(得分:5)
这看起来像是Swift REPL中的一个错误。你应该file a Radar。
这段代码在Xcode游乐场内对我来说很合适:
var perhapsInt: Int? // nil
perhapsInt = 1 // {Some 1}
if let actualInt = perhapsInt {
actualInt // 1
}