第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ruby中的“ for”與“ each”

Ruby中的“ for”與“ each”

慕虎7371278 2019-11-11 14:39:46
我只是對Ruby中的循環(huán)有一個簡單的問題。這兩種遍歷集合的方式之間有區(qū)別嗎?# way 1@collection.each do |item|  # do whateverend# way 2for item in @collection  # do whateverend只是想知道它們是否完全相同,或者是否存在細(xì)微的差異(可能@collection是nil時)。
查看完整描述

3 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊

這是唯一的區(qū)別:


每:


irb> [1,2,3].each { |x| }

  => [1, 2, 3]

irb> x

NameError: undefined local variable or method `x' for main:Object

    from (irb):2

    from :0

對于:


irb> for x in [1,2,3]; end

  => [1, 2, 3]

irb> x

  => 3

通過for循環(huán),迭代器變量在塊完成后仍然存在。對于each循環(huán),它不會,除非在循環(huán)開始之前已將其定義為局部變量。


除此之外for,該each方法只是語法糖。


如果@collection是nil兩個回路拋出一個異常:


例外:main:Object的未定義局部變量或方法“ @collection”


查看完整回答
反對 回復(fù) 2019-11-11
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個贊

你的第一個例子


@collection.each do |item|

  # do whatever

end

更慣用了。盡管Ruby支持像for和這樣的循環(huán)結(jié)構(gòu)while,但通常首選使用塊語法。


另一個微妙的區(qū)別是,您在for循環(huán)內(nèi)聲明的任何變量都將在循環(huán)外可用,而在迭代器塊內(nèi)的變量實(shí)際上是私有的。


查看完整回答
反對 回復(fù) 2019-11-11
  • 3 回答
  • 0 關(guān)注
  • 730 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號