tl; dr: Мы рассмотрим справочник по языку Swift, и, конечно же, использование этой нотации с обратной косой чертой называется key-path-expression .
(К этому моменту на вопрос уже был дан достаточный ответ.)
Более практический подход к тому, как добраться до этой части скрытой документации:
Как видно из опубликованного кода, класс User содержит свойство с именем email
.
Обратите внимание, что, если вы используете XCode, если вы замените return \.email
на return \
, вы получите ошибку компиляции "Expected expression path in Swift key path"
, так что это подсказка, которая может иметь эта нотация с обратной косой чертойделать с чем-то, называемым ключевым путем.
Из этой документации по ключевому пути мы видим, что мы могли бы также написать \User.email
(и вы можете попробовать это в Xcode без ошибок компилятора).
Пониманиеболее широкий контекст того, что происходит в этом коде:
Итак, семантически, чтобы понять смысл просматриваемой декларации usernameKey
, мы могли бы захотеть понять, что такое WritableKeyPath
является.Проще говоря, из документации мы видим, что WritableKeyPath
это: «Ключевой путь, который поддерживает чтение и запись в результирующее значение.»
Итак, мы видим, что объявление usernameKey
принимаетобъект WritableKeyPath
и возвращает String
, то есть User.email
.
Кроме того, очевидно, что классу User необходимо это свойство usernameKey
, чтобы соответствовать протоколу PasswordAuthenticatable
, который былимпортируется в первой строке с import Authentication
(если вы хотите изучить его, посмотрите на Зависимости> Auth 2.0.0> Аутентификация> Basic> BasicAuthenticatable.swift).