Первая функция на самом деле является функцией с двумя параметрами.
- (void) createBudget: (double) aBudget withExchangeRate: (float) anExchangeRate;
Вы также можете объявить вышеуказанную функцию как
- (void) createBudget: (double) aBudget:(float) anExchangeRate;
оба будут работать нормально, но с точки зрения понимания, из первого объявления, человек может догадаться, что это за функция. он / она прямо скажет, что эта функция берет параметр-бюджет с обменным курсом и выполняет операцию с ним.
где, как во втором объявлении, если мы заменим переменные aBudget
и anExchangeRate
на что-то другое, никто не сможет догадаться, что они будут делать.
Теперь для вашей второй функции:
-(void) createBudget: (double) aBudget; -(void) withExchangeRate: (float) anExchangeRate;
здесь вы создали 2 функции, т.е. createBudget
и withExchangeRate
, а не одну.
так что вы будете вызывать эти функции отдельно, то есть когда вы будете вызывать createBudget
, вы можете получить доступ только к aBudget
, а не к anExchangeRate
, как это определено в отдельной функции.