2016-06-20 8 views
-3

Ich bin Swift sehr neu, eigentlich habe ich es heute gelernt. Kann mir jemand sagen, was falsch ist, wenn ich die Funktion auf diese Weise anrufe?Funktion mit Swift

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

myAddition(5, 6) 

bearbeiten ich den Fehler durch Einfügen j festgelegt:

myAddition(5, j: 6) 

ist das normal? Ich verfolge ein Tutorial und dort seine Arbeiten ohne j

+1

Sie nicht für eine solche einfache Operationen benötigen 'NSInteger'. Verwenden Sie stattdessen ein 'Int'. – Moritz

+1

Was machen i und j in den Zeilen 2 und 3? – vacawama

+1

erhalten Sie Fehler beim Aufruf dieses? Wenn ja, was ist das? –

Antwort

0

Wenn Sie die Funktion ohne Angabe der Parameternamen aufrufen möchten, müssen Sie Swift mitteilen, dass für die Funktion keine externen Parameternamen vorhanden sind, indem Sie den Unterstrich (_) als externen Parameternamen verwenden:

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

myAddition(5, 6) 

Haben Sie wirklich eine NSInteger brauchen als zu einem normalen Swift Int Gegensatz:

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

myAddition(5, 6) 
+0

Ich denke, die Notwendigkeit, den ersten Parameter-Namen auf den Funktionsaufruf angegeben hat geändert zwischen verschiedenen Versionen von Swift, weshalb Sie möglicherweise nicht die gleichen Ergebnisse wie das Tutorial sehen. –

0

Sie haben Methode auf diese Weise zu nennen:

myAddition(5, j: 6) 

dieses Probieren Sie es Ihnen helfen können.

+0

Danke, es funktioniert, aber können Sie mir erklären, warum? Im Tutorial funktioniert es ohne die j: – User1932

+0

@ User1932 Besuchen Sie diesen Link wird es Ihnen helfen, zu verstehen. 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)) 

Dies wird für Sie arbeiten.