2015-10-09 2 views
0

Я хотел бы знать, есть ли способ проверить, используется ли переменный параметр «addComplex» или нет. Я думаю, я мог бы сделать тип параметра дополнительным, а затем проверить, нет ли он или нет, но тогда я всегда должен включать экземпляр класса Complex при вызове функции. Могу ли я каким-то образом заставить его работать с переменным параметром или лучше использовать дополнительный тип?Swift - Есть ли способ проверить, не используется ли вариационный параметр?

class Complex { 
    var real: Float = 0.0 
    var imaginary: Float = 0.0 

    init(real: Float, imaginary: Float){ 
     self.real = real 
     self.imaginary = imaginary 
    } 

    //takes default parameters and a variadic parameters 
    func incrementBy(addReal: Float = 0.0, addImanginary: Float = 0.0, addComplex: Complex...){ 
     self.real += addReal 
     self.imaginary += addImanginary 

     if (addComplex != nil){ 
      self.real += addComplex!.real 
      self.imaginary += addComplex!.imaginary 
     } 
    } 
} 

ответ

0

Вы можете проверить:

if addComplex.isEmpty { 
    // variadic parameter not used 
} 
+0

да, это работает !! спасибо! кроме строк внутри оператора if, теперь появляется ошибка, которая говорит, что: («Значение типа Complex» не имеет члена «real»). Я обращаюсь к глобальной переменной «реальный» и «мнимый» неправильно? – Felix

+0

Ну, переменная addComplex не имеет типа Complex, это массив - [Complex]. Поэтому вам нужно проверить, не массив ли пуст, а если нет, вы можете получить доступ к addComplex [0] .real и т. Д. – MirekE

Смежные вопросы