gpt4 book ai didi

swift - 将类型与 Swift 枚举案例关联起来?

转载 作者:行者123 更新时间:2023-11-30 10:01:00 24 4
gpt4 key购买 nike

我使用的是 Swift 2,我想将 struct 类型与 enum 中的每个 case 关联起来。

目前,我已经通过向名为 type 的枚举添加一个函数来解决这个问题,该函数使用 switch 语句为每种情况返回相关类型的实例,但我想知道是否这是必要的。我知道你可以将字符串、整数等与 Swift 枚举关联起来,但是也可以关联类型吗?该类型的所有结构都遵循相同的协议(protocol)(如果有帮助的话)。

这就是我现在正在做的事情,但我很想取消这个功能:

public enum Thingy {

case FirstThingy
case SecondThingy

func type() -> ThingyType {
switch self {
case .FirstThingy:
return FirstType()
case .SecondThingy:
return SecondType()
}
}

}

最佳答案

我认为您是说您希望原始值的类型为 ThingyType,但这是不可能的。

您可以做的就是使 type 成为计算属性,以删除 () 并且只需要使用 thingy.type 访问它.

public enum Thingy {

case FirstThingy
case SecondThingy

var type: ThingyType {
switch self {
case .FirstThingy:
return FirstType()
case .SecondThingy:
return SecondType()
}
}

}

关于swift - 将类型与 Swift 枚举案例关联起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555545/

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