我目前正在学习类型" Any"在swift中并提出以下代码
let optionalDouble: Double? = 45.1
let things: [Any] = [
0,
0.0,
1.1,
optionalDouble, //expression implicitly coerced from Double? to Any
-4.0,
("hello", 1),
Movie(name: "Titanic", director: "James"),
{(name: String) -> String in
return "hello \(name)"
},
{},
["one": 1, "two": 2]
]
但是,当我尝试向Double
数组添加可选的[Any]
值时,swift编译器显示警告
//expression implicitly coerced from Double? to Any
我认为类型Any
可以代表所有内容,类型[Any]
的数组可以包含所有内容。那么为什么警告信息呢?
答案 0 :(得分:1)
这只是一个警告。编译器想要确保你知道你做了一件奇怪的事情,将一个Optional包装在Any中。
在发生问题的行中,写下optionalDouble as Any
来取消警告。