在WWW中我发现了一个面试问题,其中一个是:
下面代码段的输出是什么:
class Kondana<T:Equatable> {
var dictDataHolder = [String:T]()
func add(value:T?,using key:String) -> T? {
self.dictDataHolder[key] = value
return value
}
}
var fortOne = Kondana<String>()
let value = fortOne.
print(value)
答案是:
a) British
b) nil
c) compile-time error
d) segmentation fault
我正在Xcode中运行这段代码,结果是:
__lldb_expr_21.Kondana<Swift.String>
请帮我了解一下是怎么一步一步进行的。我对正在发生的事情有想法,但不确定。什么是Kondana类,为什么使用上面的语法,我知道这是通用的,但不理解输出?
随着代码的发布,正确的答案是“编译时错误”。正如其他人所说,这条线
let value = fortOne.
因此是不合法的。