anlıyorum aynı sonuca`& block` parametresi olmayan bir metotta` & block` parametresini ve 'self get ver' parametreli bir metotta 'get self' kullanmada bir fark var mıdır?
def a(&block)
block.call(self)
end
ve
def a()
yield self
end
kurşun, böyle bir blok a {}
olduğunu varsayarsak,.
def a(&block)
yield self
end
Bu: Ben böyle bazı kodun üzerine tökezledi beri herhangi bir fark yapar olmadığına veya (başka türlü değişken/başvuru bloğunu kullanmak istemiyorsanız) sahip herhangi bir avantajı varsa - Benim sorum i &block
kullanımını anlamıyorum somut durum:
def foo; end
def bar(&blk); end
method(:foo).parameters #=> []
method(:bar).parameters #=> [[:block, :blk]]
IDE ve dokümantasyon:
def rule(code, name, &block)
@rules = [] if @rules.nil?
@rules << Rule.new(code, name)
yield self
end
[blok argümanı] (http://ruby-doc.org/core-2.4.1/doc/syntax/methods_rdoc.html#label-Block+Argument) belgelerine farklı kullanım durumları gösterir. – Stefan
@Stefan & bloğun kullanımını anlamadığım belirli bir durumu ekledim, belki bir şeyi özlüyorum, bu yüzden bir gözünüz olabilir mi? Buna ek olarak belgeleri okudum ve bu benim anlayışıma karşılık geliyor. –
Açıkça kullanmayacaksanız, listeye eklemeyin. Çağırmayı daha yavaş yapar ve kafa karıştırıcıdır. – ndn