2011-01-29 21 views
6

iken Bunu görene:"do | |" ifadesinin anlamı nedir? Ruby'de mi? Bazı Yakut kod okuma

bu notasyonu |variable| nedir
create_table :talks do |t| 

? Bu ne yapar?

Ayrıca, | |, #{} gibi belirli konular için nereden yardım bulabilirim?

+0

Ruby bloğu sözdizimi ile ilgili birçok sorunun hangisinin en iyi olarak kabul edilebileceğini anlamak çok zor, bunun yerine yalnızca bu arama terimini önereceğim: http://stackoverflow.com/search?q=%5Bruby% 5D + blokları – Phrogz

+0

"bu belirli konular için nereden yardım bulabilirim ...". Bunlar çok temel, çekirdek-Ruby şeylerdir, bu yüzden, en azından, ["Programlama Yakutu"] 'nun çevrimiçi versiyonunu okuyunuz (http://www.ruby-doc.org/docs/ProgrammingRuby/). Bu biraz güncel değil, ama bu temeller hala geçerli. –

cevap

7
+8

Bu blog linki bir 404 verir, ancak aynı makalenin bir kopyası (en azından aynı yazar ve tarih) burada görünmektedir: http://www.reactive.io/tips/2008/12/21/understanding -ruby-blocks-procs-and-lambdas – moncheery

4

üzerindedir Ayrıca onları kale direkleri olarak anılacaktır duyabilirsiniz mevcut def methodname(arg1, arg2)

benzer şekilde, bir blok için blok güzel bir açıklama argümanları tanımlamanın bir yolu. Bunlar, bir koleksiyon içindeki verileri açığa çıkarmak için yineleyebilecekleri argümanlardır. Örneğin, bir dizi:

# Print 1 2 3 4 
[1,2,3,4].each do |e| 
    print "#{e} " 
end 

Ya anahtar, değer haritasıyla

, sen

m = {"ruby" => "rails", "groovy" => "grails", "scala" => "lift", "java" => "spring"} 
m.each do |lang, framework| 
    # print the keys first - "ruby groovy scala java" 
    print "#{lang} " 
    # print the values second - "rails grails lift spring" 
    print "#{framework} " 
end 

Sorunuz üzerine Ruby daha Yakut dili için daha özel sesler Kale direklerinin arasına birden fazla argüman olurdu Raylar.

+0

1. Hiç kimse onlara 'hedef mesajlar' demez. 2. Argüman olarak isimlendirilmezler. 3. 'Onları tekrarlamak' değilsiniz. – horseyguy

+0

1. tartışılabilir; 2. kelimeler üzerinde kıllar bölme; Ruby belgeleri, bunları argüman olarak adlandırılmamış parametreler olarak ifade eder; 3. Belki 'yinelenen'% 100 doğru değildir, ancak öncül aynı kalır - koleksiyondaki her eleman için kod bloğu çağrılır. – rynmrtn

0

Ben Ruby yeniyim bu çağırmak için ne cevap arıyordu: Ben bu bağlantıların bazı kontrol. İpucunuzu çok yararlı buldum ve rynmrtn'ın cevabını destekledim ama oy vermeyecek veya yorum yapmaya yetecek kadar "özel" değilim.

Belki de bu bağlantının (videoyla uğraşma zahmetine girmeyen bir ödeme sitesi) yardımcı olabileceğini düşündüm, videonun altında metin var.

https://teamtreehouse.com/library/iteration-with-each

Ayrıca bu Ruby bilginizi büyürken çok yardımcı olabilecek ilgili bir kavramdır!

How to understand Ruby's .each and .map

Bunları sonra buraya geldi birine yardım düşündük.