枚举初始化器以获取乐趣和利润

这是英国的银行假期,所以这是一个短暂的假期。

我在读Matt Mattaglagher的一篇文章(语句,消息和缩减器)时,发现一个枚举上有一个静态函数……

 枚举 
{
情况一
情况二
情况三
 静态函数数组(_ values:Something ...)-> [Something] 
{返回值}
}

疯狂的简单-它使用可变参数函数获取多个枚举值,并返回这些值的数组(在可变函数中,值表示为数组,因此只返回该数组)。

是的,所以……您为什么要使用它? 毕竟,使用类型推断可以非常清晰地创建一个枚举值数组:

  let stuff0 = Something.array(.one,.one,.two,.one,.three) 
  // vs 
 让stuff1:[某物] = [.one,.one,.two,.one,.three] 

答案来自于您想要直接使用例如mapforEach链接值的情况

  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)}

好多了,我想您会同意的。

我喜欢这样的东西,其中一个微小的小功能可能会对我们代码的可读性产生真正的影响。