2016-03-09 6 views
0

У меня есть функция, которая требует словаря в формате [String:Double], но мои данные в настоящее время являются [String:Int].Как отличить [String: Int] до [String: Double]

Я бы очень хотел, чтобы иметь возможность конвертировать словарь, используя один вкладыш, такие как

let doubles = ints as! [String:Double] 

Но это не похоже на работу, давая сообщение об ошибке Cannot convert value of type '[String : Int]' to type '[String : Double]' in coercion

В то время как Я уверен, что я мог бы обойти эту проблему, я бы очень хотел, чтобы понять

  1. Почему я не могу преобразовать «[String: Int]» на «[String: Двойной]»
  2. Какой метод я должен использовать (возможно, что-то вроде .map будет работать?)

Большое спасибо!

ответ

1

Нечто подобное может работать:

for (key, value) in dictionary { 
    newDictionary[key] = Double(value) 
} 
+0

Спасибо! Есть ли причина, почему 'как! [String: Double] 'не работает автоматически, хотя? – Ben

+1

Вы не можете использовать 'Int' для' Double' непосредственно в Swift. Вам нужно создать каждый объект с помощью 'Double (int)' –

Смежные вопросы