Dzisiaj zetknąć się z tym dziwnym zachowaniu inline Ruby czy i blokować jeśliRóżnica między inline jeśli warunkowa i jeśli blok warunkowy w 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>'
Jaka jest różnica między inline jeśli warunkowa i jeśli blok warunkowy?
Gdzie zdefiniowałeś 'block_if'? – Santhosh
Zarówno 'inline_if', jak i' block_if' są niezdefiniowane. Ale użycie instrukcji block if powoduje błąd podczas gdy inline nie rzuca żadnego błędu. – Hardik
Oto kolejna: 'a = b.nil? => NameError: niezdefiniowana zmienna lokalna lub metoda 'b' dla głównej: Object', ale 'a = a.nil? => true'. @YuHao wyjaśnia, dlaczego. Pod koniec jednego z jego zawsze interesujących [artykułów] (http://www.rubyinside.com/what-rubys-double-pipe-or-equals-really-does-5488.html), Peter Cooper ujął to way: "Oznacza to, że przypisanie zmiennej, nawet jeśli nie jest uruchamiane, natychmiast przywołuje tę zmienną do istnienia." Interesujące pytanie. –