swift 可变参数与数组比较
swift variable param compare with array
func gradientOfView(withColours: UIColor..., locations: [NSNumber])
func gradientOfView(withColours: [UIColor], locations: [NSNumber])
哪个更好?
何时使用变量参数代替数组作为参数?
可变参数函数接受 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()
编译时会产生错误
如果您没有很好的理由使用可变参数声明函数,请避免使用它。
func gradientOfView(withColours: UIColor..., locations: [NSNumber])
func gradientOfView(withColours: [UIColor], locations: [NSNumber])
哪个更好?
何时使用变量参数代替数组作为参数?
可变参数函数接受 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()
编译时会产生错误 如果您没有很好的理由使用可变参数声明函数,请避免使用它。