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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Ruby中這些塊編碼樣式的區(qū)別或價(jià)值是什么?

Ruby中這些塊編碼樣式的區(qū)別或價(jià)值是什么?

波斯汪 2019-08-23 09:22:49
Ruby中這些塊編碼樣式的區(qū)別或價(jià)值是什么?哪種款式首選?一個(gè)與另一個(gè)有充分的理由嗎?提前致謝!1) cmds.each do |cmd|   end2) cmds.each { |cmd|   }示例代碼:cmds = [ "create", "update", "list", "help" ]# Block style one#cmds.each do |cmd|  puts "loop1, cmd: #{cmd}"end# Block style two#cmds.each { |cmd|  puts "loop2, cmd: #{cmd}"}
查看完整描述

3 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

rails團(tuán)隊(duì)和許多其他rubyists 更喜歡將花括號(hào)用于一個(gè)行塊和do...end多行塊。

兩者之間唯一的功能差異是do...end塊的優(yōu)先級(jí)低于塊的優(yōu)先級(jí){...}。


查看完整回答
反對(duì) 回復(fù) 2019-08-23
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

根據(jù)“Pickaxe”一書(shū)(我在這里看第2版),戈登是正確的:唯一的區(qū)別是優(yōu)先權(quán):

p.356(我的斜體):

大括號(hào)具有很高的優(yōu)先級(jí); do 優(yōu)先級(jí)低。如果方法調(diào)用具有未括在括號(hào)中的參數(shù),則大括號(hào)形式將綁定到最后一個(gè)參數(shù),而不是整個(gè)調(diào)用。該do形式將綁定到調(diào)用。

有關(guān)示例,另請(qǐng)參見(jiàn)第168頁(yè)。


查看完整回答
反對(duì) 回復(fù) 2019-08-23
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

這兩種形式是等價(jià)的。

建議的樣式是使用一個(gè)行塊的大括號(hào),并對(duì)多行塊使用“do” - “end”。

編輯: Austin Ziegler指出(在下面的評(píng)論中)這兩種形式具有不同的優(yōu)先級(jí):卷曲括號(hào)具有更高的優(yōu)先級(jí)。因此,當(dāng)調(diào)用沒(méi)有括號(hào)的方法時(shí),{}中包含的塊將綁定到最后一個(gè)參數(shù)而不是調(diào)用方法。

以下示例由Austin建議:

def foo    yieldendputs foo { "hello" }puts foo do
    "hello"end

第一個(gè)“puts”打印“hello”:foo被稱為返回“hello”,這是puts的參數(shù)。

第二個(gè)保釋錯(cuò)誤:

in `foo': no block given

因?yàn)樵谶@種情況下,do-end塊綁定到puts方法。

再次感謝Austin清理這個(gè)問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2019-08-23
  • 3 回答
  • 0 關(guān)注
  • 682 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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