将可选值添加到 [Any],得到编译器警告 - 从 Double 隐式强制表达式?去任何
Adding optional value to [Any], got compiler warning - expression implicitly coerced from Double? to Any
我目前正在学习 swift 中的类型 "Any" 并想出了以下代码
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]
]
但是,当我尝试向 [Any]
数组添加一个可选的 Double
值时,swift 编译器显示一条警告说
//expression implicitly coerced from Double? to Any
我认为 Any
类型可以表示所有内容,而 [Any]
类型的数组可以包含所有内容。那么为什么会出现警告信息呢?
这只是一个警告。编译器想要确保你知道你在做一件奇怪的事情,将一个 Optional 包装在一个 Any 中。
在出现问题的行中,写入 optionalDouble as Any
以取消警告。
我目前正在学习 swift 中的类型 "Any" 并想出了以下代码
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]
]
但是,当我尝试向 [Any]
数组添加一个可选的 Double
值时,swift 编译器显示一条警告说
//expression implicitly coerced from Double? to Any
我认为 Any
类型可以表示所有内容,而 [Any]
类型的数组可以包含所有内容。那么为什么会出现警告信息呢?
这只是一个警告。编译器想要确保你知道你在做一件奇怪的事情,将一个 Optional 包装在一个 Any 中。
在出现问题的行中,写入 optionalDouble as Any
以取消警告。