我刚接触后端Swift,想使用Vapor快速启动一个项目……
我运行了vapor new WebServer --template=auth-template
,现在我正在尝试弄清楚像return \.email
这样的东西是什么意思。
为了更多的背景信息,我正在查看WebServer > Sources > App > Models > Users.swift:
import Authentication
import FluentSQLite
import Vapor
/// Allows users to be verified by basic / password auth middleware.
extension User: PasswordAuthenticatable {
/// See `PasswordAuthenticatable`.
static var usernameKey: WritableKeyPath<User, String> {
return \.email
}
// ...
}
这里是User类的定义:
/// A registered user, capable of owning todo items.
final class User: SQLiteModel {
// {omit extra code} ...
var email: String
// {omit extra code} ...
/// Creates a new `User`.
init(id: Int? = nil, name: String, email: String, passwordHash: String) {
// {omit extra code} ...
self.email = email
// {omit extra code} ...
}
}
这个反斜杠点符号的表示方法是什么意思?
\.property
只是\Type.property
的简写。Swift 通常可以推断出您正在使用的根类型,但有时确实需要完整地键入关键路径。 - Caleb Kleveter