2017-02-20 5 views
-3

Ich frage mich Int warum dies nicht funktionieren wird:Kann nicht Rückkehr Ausdruck vom Typ Int konvertieren

func removingOnce (_ item: Int, from array:[Int]) -> [Int]{ 


var intToReturn :Int? 
intToReturn = 0 

for ob in array5{ 

    if (ob == item){ 
    intToReturn = item 
    } 
} 

return intToReturn 
} 

Es mich mit Fehlern warnen: Es kann keinen Ausdruck vom Typ Int konvertiert Typen Int zurückzukehren.

Es befindet sich auf alle diese

+1

'-> [Int]' bedeutet es nicht, dass die Rückkehr ein Array von 'Int' sein sollte? – Larme

+0

Ihr Rückgabetyp ist Array von Int, aber Sie zurück Int – karthikeyan

+0

Sie meinen, dass eckige Klammern zeigen, dass ich ein Array von int-Objekten zurückgeben möchte? –

Antwort

1

Die Warnung liest

Cannot convert an expression of type Int to return type [Int]

und nicht, wie Sie es gesagt. (Getestet habe ich es in Spielplatz)

Der Grund für Fehler ist, dass Sie einen Int-Wert zurückgeben intToReturn, sondern nach der Methodendefinition, sollte es eine Reihe von Ints ->[Int]

Entweder ändern Sie den Rückgabewert zurück zum das resultierende Int-Array oder ändern Sie den Rückgabetyp in der Methodendefinition in ->Int?

Außerdem deklarieren Sie intToReturn als optionalen Int-Wert. (Int?) aber gleich danach weisen Sie ihm einen Wert zu und es wird niemals Null sein. Eher tun:

var intToReturn:Int = 0 or 
var intToReturn = 0 
1

keinen Sinn machen Versuche

[] Array menas

func removingOnce (_ item: Int, from array:[Int]) -> Int{ 


var intToReturn :Int? 
intToReturn = 0 

for ob in array5{ 

    if (ob == item){ 
    intToReturn = item 
    } 
} 

return intToReturn 
} 
1

Dies ist die beste Lösung meiner Meinung nach dieser Methode zu tun:

func removingOnce (_ item: Int, from array:[Int]) -> Int? { 
    for ob in array { 
     if (ob == item){ 
      return ob 
     } 
    } 
    return nil 
} 

Das Problem war der Rückgabewert. Sie wollten Int zurückgeben und in Funktion geben Sie ein Array von Ints zurück.

+0

gut, ich verstehe jetzt. –

Verwandte Themen