Подтвердить что ты не робот

Значение слова Swift `in`?

Я пытаюсь реализовать некоторый код из parse.com, и после void я заметил ключевое слово in.

Я в тупике, что это? Во второй строке вы видите Void in

PFUser.logInWithUsernameInBackground("myname", password:"mypass") {
  (user: PFUser?, error: NSError?) -> Void in
  if user != nil {
    // Do stuff after successful login.
  } else {
    // The login failed. Check error to see why.
  }
}

Документы не документируют это. Я знаю, что ключевое слово in используется в циклах for.

Кто-нибудь подтвердит?

4b9b3361

Ответ 1

В названной функции мы объявляем параметры и возвращаемый тип в строке объявления func.

func say(s:String)->() {
    // body
}

В анонимной функции нет строки объявления func - это анонимно! Таким образом, мы делаем это с помощью строки in в начале тела.

{
    (s:String)->() in
    // body
}

(Это полная форма анонимной функции, но тогда Swift имеет ряд правил, позволяющих исключить тип возвращаемого типа, типы параметров и даже имена параметров и целую строку in при определенных обстоятельствах. )