Heute komme ich über dieses seltsame Verhalten von Rubys inline wenn und blockiert, wennUnterschied zwischen inline wenn bedingte und Block, wenn bedingt in Ruby
2.0.0-p247 :001 > inline_if = 'value will not set but no error' if inline_if
=> nil
2.0.0-p247 :002 > if block_if
2.0.0-p247 :003?> block_if = 'forget about setting value, I will raise an error'
2.0.0-p247 :004?> end
NameError: undefined local variable or method `block_if' for main:Object
from (irb):2
from /Users/myuser/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
Was ist der Unterschied zwischen Inline wenn bedingter und Block, wenn bedingt ist?
Wo haben Sie 'block_if' definiert? – Santhosh
'inline_if' und' block_if' sind beide nicht definiert. Aber mit der Anweisung block if wird ein Fehler ausgegeben, während inline kein Fehler auftritt. – Hardik
Hier ist ein anderer: 'a = b.nil? => NameError: undefinierte lokale Variable oder Methode 'b' für main: Object', aber 'a = a.nil? => wahr '. @YuHao erklärt warum. Gegen Ende eines seiner immer-interessanten Artikel (http://www.rubyinside.com/what-rubys-double-pipe-or-equals-really-does-5488.html), Peter Cooper hat es so ausgedrückt Weg: "Das heißt, eine variable Zuweisung, auch wenn nicht ausgeführt, ruft sofort diese Variable ins Sein." Interessante Frage. –