Это замыкающее устройство создано и используется в том же месте. Вы используете его для инициализации, когда вы не можете поместить все в одно выражение. Эта функция полезна при создании полей только для чтения (let
, а не var
).
В приведенном выше примере код создает кнопку, а затем выполняет дополнительную настройку перед возвратом результата. Это хороший способ переместить код с init
в блоки кода рядом с местом инициализации.
Один из способов визуализировать то, что происходит, чтобы думать о именованной функции, которая делает то же самое:
func makeWhiteButton() -> UIButton {
let button = UIButton(type: .system)
button.backgroundColor = UIColor.White
button.setTitle("Register", for: .normal)
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitleColor(.white, for: .normal)
return button
}
Теперь вы можете использовать его в инициализаторе
let loginRegisterButton:UIButton = makeWhiteButton()
код от вашего post делает то же самое с анонимной функцией «закрытия». Скобки после блокировки замыкаются по той же причине, что и скобки после makeWhiteButton
выше.
спасибо, что имеет смысл – Ninja13
@ Ninja13 Добро пожаловать! Если вам не нужна дополнительная помощь, подумайте о том, чтобы принять ответ, нажав на серый флажок рядом с ним. Это позволит другим узнать, что ваша проблема решена, и вы получите новый значок в Stack Overflow. – dasblinkenlight