2016-07-31 12 views
0

Ich bin sehr neu in Ruby. Experten, bitte entblößen Sie mich.Ruby: Die Verwendung von "if else" in einer Funktion führt zu einem unerwarteten Keyword_end-Fehler

Ich habe eine Funktion definiert, die wie folgt aussieht:

def putValAndmyBool val mybool 
    if mybool 
     puts val + "true" 
    else 
     puts val + "false" 
    end 
end 

Es gibt die folgenden Fehler:

SyntaxError: (irb):101: syntax error, unexpected tIDENTIFIER, expecting ';' or '(irb):107: syntax error, unexpected keyword_end, expecting end-of-input from K:/Ruby22-x64/bin/irb:11:in `'

Aber wenn ich folgende Funktion definiert, es läuft erfolgreich. Der Grund, warum ich das versuchte, ist, dass ich dachte, dass etwas in der Zeile puts val + "true" das Problem verursacht.

def addbool val 
    puts val + "true" 
end 

Jede Erklärung wird geschätzt. Danke im Voraus.

+0

Sie vermissen ein Komma ',' zwischen der Methode der Argumente 'val' sein annehmen und' mybool' – spickermann

+0

Leser nicht wissen, der Inhalt der Zeile IRB ist mit 101 gekennzeichnet. Bei der Meldung von Fehlern geben Sie bitte an, wo die Ausnahme ausgelöst wurde, sowie die Ausnahme selbst. –

+0

@ CarySwoveland: Punkt genommen. Es scheint mir, dass Fragen für eine naive Person auf dieser Seite schwieriger sind. Sie werden dafür abgelehnt. Obwohl ich erst vor ein paar Stunden Ruby gelernt habe. – ivorykoder

Antwort

1

Diese Linie ist falsch

def putValAndmyBool val mybool 

Ich sollte

def putValAndmyBool val, mybool 
+0

Oh! Meine schlechte ... Ich bin nur auf Kontrollstrukturen in dem Buch. Ich glaube, ich habe zu früh mit dem Experimentieren begonnen. Vielen Dank! – ivorykoder

+0

Gern geschehen :) – Ursus