gpt4 book ai didi

swift - 在 Swift 中,编译器是否允许您隐式访问要打开的值?

转载 作者:行者123 更新时间:2023-11-28 07:40:39 24 4
gpt4 key购买 nike

Swift 的一个很酷的特性是它为您提供了很多隐式变量,例如:

  • valueset 语句中。
  • oldValuedidSet 语句中。
  • catch 子句中
  • error

我想知道 switch 语句是否有类似的东西。不这么认为,但想问一下。

例如,采用以下代码(假设有一个枚举定义了计算的 displayName 属性)。

请注意我必须如何显式创建一个临时变量来保存函数的结果,因为我必须使用它来打开,并且在下面的 case 语句中还需要关闭......

let valToSwitchOn = getValToSwitchOn()

switch valToSwitchOn {
case .categories: return categories.count > 0 ? valToSwitchOn.displayName : nil
case .narratives: return narratives.count > 0 ? valToSwitchOn.displayName : nil
}

但是,如果 Swift 为开启值提供一个隐式变量,它会简化代码,就像这样(注意:我在这里使用 switchValue 作为示例)...

switch getValToSwitchOn() {
case .categories: return categories.count > 0 ? switchValue.displayName : nil
case .narratives: return narratives.count > 0 ? switchValue.displayName : nil
}

这让我可以直接为开关提供函数,而无需首先创建一个显式变量,因为开关值是隐式为我提供的。如果我这样做没什么大不了的(它只有一行),但我想知道是否已经有类似的东西了。

那么 Swift 是否有一个用于switch 的隐式变量?

最佳答案

开关没有“隐式”变量,因为您使用 case 语句来检查开关的值。

关于swift - 在 Swift 中,编译器是否允许您隐式访问要打开的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52361192/

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