#callback #arguments #swift
#обратный вызов #аргументы #swift
Вопрос:
Я погружаюсь в Swift lang от Apple и испытываю некоторые проблемы с использованием завершающего синтаксиса замыкания, например:
func test(txt: String, resolve: (name: String) -> Void) {
resolve(name: "Dodo")
}
// Errors here complaining on resolve param
test("hello", (name: String) {
println("callback")
})
Как это исправить?
Ответ №1:
у вас неправильный синтаксис закрытия
test("hello", {(name: String) in
println("callback")
})
или
test("hello", {
println("callback: ($0)")
})
или
test("hello") {(name: String) in
println("callback")
}
или
test("hello") {
println("callback: ($0)")
}
Комментарии:
1. У меня есть еще один вопрос, это
resolve(name: name)
выдает ошибкуuse of unresolved identifier 'name'
.. как передать аргументы в обратном вызове?2. привет, я этого не понимаю. можете ли вы поделиться кодом, который терпит неудачу?
3. У меня вопрос… В первом примере кода, который вы предоставили выше, у вас есть «{(name: String) in». Каково семантическое значение «in» при использовании в этом контексте?
4. In — разделитель между параметрами и операторами