gpt4 book ai didi

ios - Swift 中的可变枚举参数

转载 作者:可可西里 更新时间:2023-11-01 02:25:39 25 4
gpt4 key购买 nike

假设我有这样一个枚举类型

enum MyEnum {
case aValue
case anotherValue
case thirdValue
case lastValue
}

和一个接受该类型可变参数的函数

func test(values:MyEnum...) {
// ...
}

像这样的电话

test(.aValue, .lastValue)

完美运行,编译器通过类型推断识别调用参数类型。

尝试用单个值调用函数

test(.aValue) // Error...

被编译器以“'(MyEnum...).Type' 没有名为'aValue' 的成员”拒绝。需要显式类型:

test(MyEnum.aValue)

解决方法已给出,但是 - 我是否必须将其视为错误或 Swift 的功能? ;-)

最佳答案

Swift 1.2 解决方案(针对历史):

我最终添加了一个单参数重载:

func test(values: MyEnum...) {
doTest(values)
}

func test(value: MyEnum) {
doTest([value])
}

private func doTest(values: [MyEnum]) {
// ...
}

看起来很丑,但我认为 API 方面更好:

test(.aValue)
test(.aValue, .anotherValue)

Swift 2.0 不再需要单参数解决方法。

关于ios - Swift 中的可变枚举参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328311/

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