gpt4 book ai didi

swift - 枚举行为理解(Swift 应用开发介绍 - 第 19 课)

转载 作者:搜寻专家 更新时间:2023-11-01 06:31:55 25 4
gpt4 key购买 nike

我是编码新手,即将完成“使用 Swift 进行 App 开发入门”iBook。我目前正在学习第 19 课,枚举和开关,在相关 Playground 的第 8 页,它显示了以下代码:

enum LunchChoice {
case pasta, burger, soup
}

func cookLunch(_ choice: LunchChoice) -> String {
if choice == .pasta {
return "🍝"
} else if choice == .burger {
return "🍔"
} else if choice == .soup {
return "🍲"
}

return "Erm... how did we get here?"
}

cookLunch(.soup)

本身,这对我来说不是理解问题,但是,一旦我调用 cookLunch(.soup),最后的 return 语句就不会出现。下面的练习问我:

try to change the value passed in to cookLunch so that the final else statement is called

这就是我被卡住的地方,因为除了枚举中存在的选择之外,似乎不可能将不同的东西传递给 cookLunch 函数。

你能帮我理解这一切背后的意义,也许能给我一个解决方案吗?

最佳答案

你有两个选择:

  • 注释掉第三个比较

    // } else if choice == .soup {
    // return "🍲"
  • 添加比较未涵盖的第四个案例

    enum LunchChoice {
    case pasta, burger, soup, steak
    }

    并通过它:

    cookLunch(.steak)

然而,没有人会认真地编写这样一个 if - else 链,在 Swift 中,一个 switch 表达式是合适的

func cookLunch(_ choice: LunchChoice) -> String {
switch choice {
case .pasta: return "🍝"
case .burger: return "🍔"
case .soup: return "🍲"

default: return "Erm... how did we get here?"
}
}

关于swift - 枚举行为理解(Swift 应用开发介绍 - 第 19 课),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46140581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com