提问者:小点点

面试问题迅速,无法理解的句法


在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类,为什么使用上面的语法,我知道这是通用的,但不理解输出?


共1个答案

匿名用户

随着代码的发布,正确的答案是“编译时错误”。正如其他人所说,这条线

let value = fortOne. 

因此是不合法的。