У меня есть структура, у которой есть метод для возврата в словарное представление.Переменные-члены представляли собой комбинацию различных типов (String и Double?)
. В следующем примере кода было бы предупреждение от Xcode (выражение неявно приведено от 'Double?' К Any)
struct Record {
let name: String
let frequency: Double?
init(name: String, frequency: Double?) {
self.name = name
self.frequency = frequency
}
func toDictionary() -> [String: Any] {
return [
"name": name,
"frequency": frequency
]
}
}
Однако, если он возвращал тип [String: Any?], Предупреждение исчезнет:
struct Record {
let name: String
let frequency: Double?
init(name: String, frequency: Double?) {
self.name = name
self.frequency = frequency
}
func toDictionary() -> [String: Any?] {
return [
"name": name,
"frequency": frequency
]
}
}
Мой вопрос: это правильно?И если это так, можете ли вы указать мне какую-нибудь документацию Swift, объясняющую это?
Если это не так, что это должно быть?
== РЕДАКТИРОВАТЬ ==
Следующие работы тоже:
struct Record {
let name: String
let frequency: Double?
init(name: String, frequency: Double?) {
self.name = name
self.frequency = frequency
}
func toDictionary() -> [String: Any] {
return [
"name": name,
"frequency": frequency as Any
]
}
}