【发布时间】:2016-08-25 19:05:05
【问题描述】:
如果我为变量 a 输入双问号而不是单问号,谁能告诉我为什么 Xcode 的 Playground 返回 nil? 由于溢出结果必须是 64,而不是 nil。
Swift 2.2 版, Xcode 7.3.1 版, OS X 版本 10.11.6
import Cocoa
var b: Int8
var c: String? = "128"
var a: Int8?? = Int8(c!)
b = 64
func nilCoalescing() {
a != nil ? a! : b
}
nilCoalescing()
【问题讨论】:
-
你的函数没有返回任何东西。您也没有在任何地方使用 nil 合并运算符。
-
但是如果我写 var a: Int8? = Int8(c!) 它返回 64。
-
这不是您使用 nil 合并运算符的方式。你会想要
var a: Int8(c!) ?? "Probably overflowed"这样的东西。 -
@JoshCaswell 它不需要返回任何东西。它是游乐场,而且 - 如果它会返回任何值,函数将以 -> ValueType 结尾
-
操场有什么不同,@pedrouan?
标签: swift xcode swift-playground