簡體   English   中英

在Ruby中將命名參數與塊一起使用

[英]Use named parameters with block in Ruby

我曾經有這種方法:

def send_action(action, &success_block)

end

我可以這樣稱呼它:

send_action('PAIR') do
  pp 'test
end

現在,我想添加一個可選參數:

def send_action(action, uuid = nil, &success_block)

end

但這似乎不起作用(我可以)。 所以我嘗試用命名參數編寫它:

def send_action(action:, uuid: nil, &success_block)

end

但是如何將命名參數與塊結合在一起?

兩者都適用於Ruby 2.4.4和2.6.4。 這是帶有位置參數的演示。

def send_action(action, uuid = nil, &success_block)
  p "#{action} #{uuid}"
  success_block.call
end

send_action("foo") { p 99 }
"foo "
99

send_action("foo", "bar") { p 99 }
"foo bar"
99

並帶有命名參數。

def send_action(action:, uuid: nil, &success_block)
  p "#{action} #{uuid}"
  success_block.call
end

send_action(action: "foo") { p 99 }
"foo "
99

send_action(action: "foo", uuid: "bar") { p 99 }
"foo bar"
99

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM