В настоящее время я изучаю тип «Любой» в 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]
, быстрый компилятор отобразил предупреждение о том, что
//expression implicitly coerced from Double? to Any
Я думал, что тип Any
может представлять все, а массив типа [Any]
может содержать все. Так почему предупреждающее сообщение?