split теперь жалуется на отсутствие " isSeparator"
после последнего обновления Swift 1.2 я не могу понять, как разделить строку текста на слова. Я делал так:
let bits = split(value!, { == " "}, maxSplit: Int.max, allowEmptySlices: false)
но это не работает, потому что...
Cannot invoke 'split' with an argument list of type '(String, (_) -> _, maxSplit: Int, allowEmptySlices: Bool)'
уммм, хорошо, хотя я мог бы последний строить? Ладно, давай попробуем...
let bits = split(value!, { == " "})
Ну, это и все другие версии, которые я могу придумать, заканчиваются словами:
Missing argument for parameter 'isSeparator' in call
Давайте послушаем его для бета-тестирования новых языков программирования! Ура!
кто-нибудь знаете правильный секретный соус для 1.2?
1 ответов
кажется, что порядок параметров изменился в Swift 1.2:
let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false,
isSeparator: { == " "})
или, используя значения по умолчанию:
let bits = split(value!, isSeparator: { == " "})
предикат теперь является последним параметром и требует внешнего
имя параметра isSeparator
потому что ему предшествуют необязательные параметры.
преимущество этого изменения заключается в том, что вы можете использовать трейлинг-закрытие синтаксис:
let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false) { == " " }
или
let bits = split(value!) { == " " }