Каковы новые слова «for», «at», «in» в объявлениях Swift3?

Я работаю над учебником для начинающих по Swift, который написан в Swift 2.

Он содержит код, подобный (случайный пример)

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 

Это изменилось в Swift 3 (я использую XCode 8 Beta), и среда IDE помогает преобразовать это в новую (красивую!) Нотацию:

 override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { 

Что меня смущает, так это «за» в «для segue». Я понимаю, почему он есть, но какой элемент синтаксически? Является ли параметр, названный for , for segue или segue ?

Является ли это просто украшением – элементом, не имеющим смысла, но помогающим разработчику понять контекст? Делает ли это что-нибудь еще? Есть ли у концепции название? Могу ли я использовать его в своих собственных методах?

Я вижу то же самое с «in» и «at».

Синтаксис позволяет дважды указывать аргументы – один раз для использования внутри функции ( имя параметра ) и один раз для использования при вызове ( метка аргумента ). По умолчанию эти два будут одинаковыми (например, с sender в вашем примере), но они отличаются, когда он делает функцию более читаемой на сайте вызова:

 prepare(for: aSegue, sender: something) 

будучи более читабельным как предложение, чем:

 prepare(segue: aSegue, sender: something) 

Похоже, вы готовите сегу, а не готовитесь к переходу.

for это было бы ужасное имя для использования внутри функции для ссылки на segue, поэтому вы можете использовать другую, если вам нужно.

Идея состоит в том, чтобы встретить иногда противоречивые цели читаемости на сайте вызова и разумное именование в реализации.

При определении функции, если вы собираетесь использовать отдельные метки меток и имена параметров, сначала указывается метка аргумента, а имя параметра второе:

 func sayHello(to name: String) { print("Hello " + name) } sayHello(to: "Pekka") 

имеет значение только при вызове функции. name используется внутри функции.

  • Быстрое изображение асинхронной загрузки
  • Когда мне нужно быстро получить доступ к свойствам с помощью self?
  • Меню боковой панели слайдов IOS 8 Swift
  • JSON Parsing in Swift 3
  • Сбой при выдаче результата arc4random () в Int
  • UIAlertController - добавление пользовательских представлений в таблицу действий
  • Быстро переходит по значению или переходит по ссылке
  • Почему неявно разворачивается необязательный не разворачивается в словаре типа
  • Как я могу атомизировать приращение переменной в Swift?
  • Объект X classа Y не реализует методSignatureForSelector в Swift
  • Shuffle array swift 3
  • Давайте будем гением компьютера.