首页 > 解决方案 > 当我使用“for”作为 switch 语句的表达式时,Swift 返回一个错误。如何解决这个问题?

问题描述

对于以下函数,我使用了一个名为“for”的参数。该函数包含一个 switch 语句,当我使用参数作为语句的表达式时返回错误。

代码:

func synoynms(for: String) -> [String]? {
    switch for {
        case "swift": return synonyms["swift"]
        case "objective": return synonyms["swift"]
        case "calculate": return synonyms["swift"]
        case "create": return synonyms["swift"]
        default: return nil
    }
}

错误:

error: Synonyms.playground:25:12: error: expected expression in 'switch' statement
    switch for {
           ^

我认为它将“for”解释为其他东西,但我会被迫找到不同的参数还是有办法解决它?

标签: swiftfor-loopswitch-statement

解决方案


for是一个保留字,如果你想使用保留字作为变量或函数名,你需要用反引号将它们转义。

尝试这个

switch `for` {

PS。您可以通过添加与标签不同的变量名称来改进此函数签名,如下所示

func synoynms(for word: String) -> [String]? {
    switch word {

现在word是变量的名称,调用仍然如下所示:synonyms(for: "cheese")


推荐阅读