Ich bekomme immer einen Fehler "kein Block gegeben", wenn ich versuche, die Zeichenfolge an die is_tut zu übergeben? Methode. Ich bin neu in Ruby und habe keine Ahnung, was ich falsch mache. Jede und jede Hilfe würde geschätzt werden.
%Vor% Wenn Sie yield
innerhalb Ihrer Methodendefinition haben, bedeutet das, dass Sie obligatorisch einen Block übergeben müssen, wenn Sie ihn verwenden (es sei denn, der Teil, der ihn enthält, wird nicht entsprechend der Konditionierung usw. ausgeführt). (Sie wissen vielleicht schon, aber falls nicht: ein Block ist etwas, das als {...}
oder do ... end
beschrieben wird) Und yield
bezieht sich auf den Block.
Wenn Sie einen Block optional machen wollen, können Sie das &
-Symbol vor den Variablennamen setzen.
Dies ermöglicht optionale Blockierung. Oder, wie von Squeegy vorgeschlagen,
%Vor%funktioniert auch.
Da Sie yield
in Ihrer Methode to_tut()
aufrufen, schlägt diese Zeile fehl:
Sie müssen entweder brauchen um einen Block zu geben (wie Sie es im ersten auskommentierten Aufruf von Tut.to_tut()
gemacht haben), oder müssen Sie Ihre to_tut()
ändern Funktion zu machen den Code-Block optional :
yield
erfordert, dass ein Block an to_tut
übergeben wird.
Wenn Sie das tun:
%Vor% Es funktioniert, weil es den Block { |c| print c }
hat.
Ohne einen Block wird der Fehler ausgelöst.
Tags und Links ruby