let numberSet = Set(1...11)
let divideSet = numberSet.map({ $0 / 10 })
//Error: Set does not have a member named map :(
Swift 1.2 поддерживает Set()
для неупорядоченных коллекций, но map(_:)
, похоже, не работает на Sets, поэтому я решил умудряться на своей игровой площадке и попытался:
let stringSet = Set(map(numberSet, { String($0)}))
println(stringSet)
stringSet = ["2", "11", "1", "8", "6", "4", "3", "9", "7", "10", "5]
Казалось, это сработало. Поэтому я попытался расширить Set:
extension Set {
func map<U>(transform: (T) -> U) -> Set<U> {
return Set(Swift.map(self, transform)) }
}
Error: "couldn't find initialiser for Set(T) that accepts argument of type U"
И я думаю, что есть веская причина, почему он не работает, как этот пример здесь:
let smarDividSet = Set(map(numberSet, {$0 / 2}))
println(smarDividSet)
smartDividSet = "[5, 0, 2, 4, 1, 3]"
//Somehow elements is the Set are going missing.
Любые идеи о том, как продлить команду Использовать карту (_:) надежно?. Спасибо, ребята.