我们可以在 SWIFT 中使用关键字作为参数名称吗?

Nat*_*Rad 1 parameters enums keyword switch-statement swift

基本上,我想设置一个使用“for”作为可读性参数的函数。

enum Genre {
    case drama
    case comedy
}

func setupTable(for: Genre) {
    switch for {
    case .drama: break
    case .comedy: break
    }
}
Run Code Online (Sandbox Code Playgroud)

我设置了这样的东西,但是当我尝试使用“for”的开关时,它作为关键字出现并引发编译错误。

干杯

Mar*_*chi 5

使用关键字作为普通标识符时,您必须使用反引号 ` 来转义它,就像这样

func setupTable(for: Genre) {
    switch `for` {
        case .drama: break
        case .comedy: break
    }
}
Run Code Online (Sandbox Code Playgroud)

附带说明一下,正如@Hamish 在对该问题的评论中所指出的,您应该尽量避免将此类名称用于变量,这(在这种情况下)您可以通过为参数提供内部和外部名称来实现:

func setupTable(for: Genre) {
    switch `for` {
        case .drama: break
        case .comedy: break
    }
}
Run Code Online (Sandbox Code Playgroud)