Swift中的可选作业不起作用?

时间:2014-06-24 16:40:32

标签: swift

出于某种原因,我无法在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

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

这看起来像是Swift REPL中的一个错误。你应该file a Radar

这段代码在Xcode游乐场内对我来说很合适:

var perhapsInt: Int?                  // nil
perhapsInt = 1                        // {Some 1}

if let actualInt = perhapsInt {
    actualInt                         // 1
}