在Swift中,我可以声明一个类型的常量Any并将其String放入其中.
let any: Any = "hello world"
Run Code Online (Sandbox Code Playgroud)
好.另一方面,我不能将nil值放入,any因为它不是可选的.
let any: Any = nil
error: nil cannot initialize specified type 'Any' (aka 'protocol<>')
let any: Any = nil
^
Run Code Online (Sandbox Code Playgroud)
完善.但是为什么编译器允许我编写以下代码?
let couldBeNil: String? = nil
let any: Any = couldBeNil
print(any) // nil
Run Code Online (Sandbox Code Playgroud)
不Any遵循Swift规则只能填充一个Optional var/let nil吗?
使用Xcode Playground 7.2 + Swift 2.1.1进行测试