6 EYLÜL 2009, Pazar
Ruby blok ve blok arasındaki fark
Neden bazen blok ve diğer zamanlarda kullan &içindeki fonksiyonları engellemek gerekir engelleyen kabul ediyor musunuz?
CEVAP
6 EYLÜL 2009, Pazar
block
sadece yerel bir değişken, &block
blok için bir başvuru yöntemi geçirilir.
def foo(block = nil)
p block
end
foo # => nil
foo("test") # => test
foo { puts "this block will not be called" } # => nil
def foo(&block)
p block
end
foo # => nil
foo("test") # => ArgumentError: wrong number of arguments (1 for 0)
foo { puts "This block won't get called, but you'll se it referenced as a proc." }
# => #<Proc:0x0000000100124ea8@untitled:20>
Ayrıca kullandığınız gibi yordamlara kullanabilmek için yöntem yöntem için bir blok olarak bir proc geçirmeye çağırırken &block
kullanabilirsiniz.
my_proc = proc {|i| i.upcase }
p ["foo", "bar", "baz"].map(&my_proc)
# => ["FOO", "BAR", "BAZ"]
p ["foo", "bar", "baz"].map(my_proc)
# => ArgumentError: wrong number of arguments (1 for 0)
Değişken adı block
özel bir şey ifade etmiyor. Eğer istersen &strawberries
kullanabilirsiniz, ve işareti anahtarı burada.
this article yararlı olabilir.
Bunu Paylaş:
Ekran arasındaki fark nedir: satır içi...
Rspec - izin ve daha önce blok arasınd...
Bunu engellemek ve bir arasındaki fark...
Ve Ruby dahil ihtiyaç arasındaki fark ...
'DateTime, zaman Damgası, Zaman v...