2016-06-12 11 views
-1

Ich bin ein Neuling in Ruby und könnte jemand bitte beantworten, warum der folgende Code keine Ausgabe produzieren ?:Methode zurückkehrt nichts

def method(name) 
    return "Hello + #{name}" 
end 

method("Amy") 

Es ist nicht mir kein Ergebnis geben

+1

Die Methode gibt etwas zurück, aber Sie verwenden es nicht. Um das Ergebnis zu drucken, schreiben Sie einfach 'puts method (" Amy ")' –

+2

Beachten Sie, dass 'method' eigentlich ein reservierter Methodenname in Ruby ist, seien Sie also vorsichtig, wenn Sie diesen verwenden. – tadman

+1

Ihre Frage ist unklar. Im Titel behaupten Sie, dass die Methode nichts zurückgibt, in der Frage, dass sie keine Ausgabe produziert. Dann, wieder, in Ihrer Frage sagen Sie es "gibt kein Ergebnis". Das sind drei völlig verschiedene Dinge. Was ist deine * präzise * Frage? –

Antwort

2

Welche Ausgabe? Es gibt nur einen String zurück. Sie müssen es oder etwas drucken. Ersetzen letzten Methodenaufruf mit:

puts method("Amy") 

Dann werden Sie feststellen, müssen Sie wahrscheinlich nicht, dass +, weil Sie bereits name als Teil der Zeichenfolge hinzufügen

1

Sie puts oder Druckverfahren verwenden, können das drucken Ergebnis der Funktion.

puts(method("Amy")) 

Oder in einer Variable

hello = method("Amy") 
puts(hello) 
3

Nun, zuerst, wenn Sie eine Rückkehr am Ende eines Verfahrens tun sie nichts an den Bildschirm nicht gibt, wird das Rückgabeverfahren soll nur gib etwas Wert zurück. Lassen Sie mich erläutern, wenn Sie das tun:

def method(name) 
    return "Hello + #{name}" 
end 

hello = method("Amy") 

Nun ist die Rückkehr der Wert „Hallo + Amy“ gesendet an die Variable ‚Hallo‘, so ‚hallo‘ den Wert von „Hallo + Amy“ hat. Das macht die Rendite in einer Methode. Großartig jetzt, um etwas auf dem Bildschirm in Ruby auszugeben, müssen Sie Puts verwenden. Zum Beispiel:

Dies wird "Hello + Amy" ausdrucken. Und schließlich ist dieses Pluszeichen nicht notwendig, wenn Sie nur "Hello Amy" drucken möchten! Hoffe, es hilft

+1

Ersetzen von 'return' mit' puts' druckt _ "Hello + Amy" _, aber es ändert auch den Rückgabewert der Methode auf 'nil'. – Stefan

1

Auch Sie können Rückkehr Schlüsselwort, Ruby-Methoden zurückgeben immer das ausgewertete Ergebnis der letzten Zeile des Ausdrucks, es sei denn, eine explizite Rückkehr kommt vor. Wenn Sie explizit einen Wert zurückgeben möchten, können Sie das Rückgabe-Schlüsselwort Ex verwenden. siehe unten:

def method(name) 
    "Hello " + "#{name}" 
end 

p method("Amy") 
# Output : "Hello Amy" 

def method(name) 
    return "Hello " + "#{name}" 
end 


p method("Amy") 
# Output : "Hello Amy" 

def method(name) 
    return "Bye " + "#{name}" 
    "Hello " + "#{name}" 
end 

p method("Amy") 
# Output "Bye Amy" 
Verwandte Themen