Быстрая переменная param сравнить с массивом

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

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

Что лучше?

Когда использовать переменную param, заменить массив как param?

1 ответ

Решение

Функция variadic принимает 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()

выдаст ошибку при компиляции. Если у вас нет веских причин объявлять функцию с переменным параметром, избегайте ее.

Другие вопросы по тегам