2016-06-20 2 views
-3

Я очень новичок в Swift, на самом деле я начал изучать его сегодня. Может ли кто-нибудь сказать мне, что случилось с вызовом функции таким образом?Функция с Swift

func myAddition(i:NSInteger,j:NSInteger) ->NSInteger { 
    i 
    j 
    return i+j 
} 

myAddition(5, 6) 

Редактировать Я исправил ошибку, вставив J:

myAddition(5, j: 6) 

это нормально? Я следую учебник и там его рабочих без J

+1

Вам не нужно 'NSInteger' для таких простых операций. Вместо этого используйте 'Int'. – Moritz

+1

Что я и я делаю на строках 2 и 3? – vacawama

+1

Вы получаете ошибку при вызове? если да, то что это? –

ответ

0

Если вы хотите, чтобы функция вызывала функцию без указания имен параметров, вы должны сообщить Swift, что для функции нет внешних имен параметров, используя нижний барабан (_) в качестве имени внешнего параметра:

func myAddition(_ i:NSInteger, _ j:NSInteger) -> NSInteger { 
    return i+j 
} 

myAddition(5, 6) 

ли вам действительно нужно NSInteger в отличие от нормального Swift Int:

func myAddition(_ i:Int , _ j:Int) -> Int { 
    return i+j 
} 

myAddition(5, 6) 
+0

Я думаю, что необходимость указания имени первого параметра в вызове функции изменилась между различными версиями Swift, поэтому вы можете не видеть те же результаты, что и учебник. –

0

Вы должны вызвать метод таким образом:

myAddition(5, j: 6) 

Попробуйте это может помочь вам.

+0

Спасибо, что это работает, но можете ли вы объяснить мне, почему? В учебнике его работа без j: – User1932

+0

@ User1932. Перейдите по этой ссылке, это поможет вам понять. http://stackoverflow.com/questions/24045890/why-does-a-function-call-require-the-parameter-name-in-swift – Bhumi

0
func myAddition(i:Int,j:Int) ->Int { 
    return i+j 
} 

print(myAddition(5, j: 6)) 

Это будет работать на вас.

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