如果僅像某些文章說(shuō)的前者的效率不如後者,那要前者做什麼?
認(rèn)證0級(jí)講師
一般情況下,盡量用each
:
1.upto(10).each { |i| puts i } puts i # NameError: i is undefined
而用for
時(shí):
for i in 1.upto(10) do puts i end puts i # print 10
這個(gè)是程式風(fēng)格的問(wèn)題,each循環(huán)是函數(shù)式的風(fēng)格,for循環(huán)是命令式的風(fēng)格
each實(shí)際上可迭代的物件上的一個(gè)方法,接受一個(gè)block作為參數(shù)
for是語(yǔ)法裡面實(shí)作的一種循環(huán)結(jié)構(gòu)