枚举初始化器以获取乐趣和利润
这是英国的银行假期,所以这是一个短暂的假期。
我在读Matt Mattaglagher的一篇文章(语句,消息和缩减器)时,发现一个枚举上有一个静态函数……
枚举
{
情况一
情况二
情况三
静态函数数组(_ values:Something ...)-> [Something]
{返回值}
}
疯狂的简单-它使用可变参数函数获取多个枚举值,并返回这些值的数组(在可变函数中,值表示为数组,因此只返回该数组)。
是的,所以……您为什么要使用它? 毕竟,使用类型推断可以非常清晰地创建一个枚举值数组:
let stuff0 = Something.array(.one,.one,.two,.one,.three)
// vs
让stuff1:[某物] = [.one,.one,.two,.one,.three]
答案来自于您想要直接使用例如map或forEach链接值的情况 。
stuff0.forEach {print($ 0)}
stuff1.forEach {print($ 0)}
这些当然很好,但是如果我们要删除初始变量并实例化数组并立即使用它,该怎么办。
Array ([[。one,.one,.two,.one,.three])
.forEach {print($ 0)}
// 要么
[某事]([。one,.one,.two,.one,.three])
.forEach {print($ 0)}
www! 对我来说,这里的可读性确实很不好。
如何使用可变参数函数版本?
Something.array(.one,.one,.two,.one,.three)
.forEach {print($ 0)}
好多了,我想您会同意的。
我喜欢这样的东西,其中一个微小的小功能可能会对我们代码的可读性产生真正的影响。