swift变量param与数组比较

时间:2017-05-24 09:29:36

标签: swift variadic-functions

func gradientOfView(withColours: UIColor..., locations: [NSNumber])

func gradientOfView(withColours: [UIColor], locations: [NSNumber])

哪个更好?

何时使用变量param替换数组作为参数?

1 个答案:

答案 0 :(得分:0)

可变参数函数接受0个或更多参数,请参阅下一个片段

func f0(items: Any...) {
    print(type(of: items))
    items.forEach { (i) in
        print("\t",i)
    }
}

func f1(items: [Any]) {
    print(type(of: items))
    items.forEach { (i) in
        print("\t",i)
    }
}

f0(items: 1,2)
f1(items: [1,2])

f0(items: [1,2])
f1(items: [1,2])

f0()

打印

Array<Any>
     1
     2
Array<Any>
     1
     2
Array<Any>
     [1, 2]
Array<Any>
     1
     2
Array<Any>

声明

f1()

将在编译时产生错误 如果您没有充分的理由使用可变参数声明函数,请避免使用它。