gpt4 book ai didi

ios - "where"关键字是什么意思?

转载 作者:IT王子 更新时间:2023-10-29 05:25:25 25 4
gpt4 key购买 nike

我无法理解这句话的确切含义。

let x where x.hasSuffix("pepper")

这是什么意思?

注意:不需要使用?这让我感到困惑.. x where x.hasSuffix("pepper") 足够了吗?因为,let x 应该已经被分配了。?

更新:从@Jacky 评论这里,它可能与下面的意思相同。

let x = vegetable 
if (x.hasSuffix("pepper")
......

最佳答案

该上下文中的 where 用作 pattern matching .来自示例:

case let x where x.hasSuffix("pepper"):

x 的后缀匹配 "pepper" 时,它将设置常量 vegetableComment:

let vegetableComment = "Is it a spicy \(x)?"

您还可以看到 x 不能是“celery”、“cucumber”或“watercress”,否则它会给您不同的结果:

case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwich."

因为那些案例在 case let x where x.hasSuffix("pepper"): 之前。您可以尝试更改它们的顺序并传递值“celery”以查看不同的结果。

编辑:

根据我的理解,它创建了一个常量 x if x 的后缀是“pepper”。创建此常量的目的是供您之后使用它:

let vegetableComment = "Is it a spicy \(x)?"

编辑 2:

经过更多研究,这被称为值绑定(bind),它被描述为:

switch case can bind the value or values it matches to temporary constants or variables, for use in the body of the case. This is known as value binding, because the values are “bound” to temporary constants or variables within the case’s body.

摘自:Apple Inc.“The Swift Programming Language”。电子书。 https://itun.es/gb/jEUH0.l

关于ios - "where"关键字是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24011003/

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