[英]Syntax for putting a block on a single line
所以我有一個像這樣的Ruby方法:
def something(variable, &block)
....
end
我想這樣稱呼它:
something 'hello' { do_it }
除非這對我不起作用,否則我會收到語法錯誤。 如果我這樣做,它的工作原理:
something 'hello' do
do_it
end
除了那里,我有點想念它在一條線上的漂亮外觀。
我可以看到為什么會發生這種情況,因為它看起來像是一個哈希作為第二個變量傳遞,但變量之間沒有逗號...但我認為必須有一種方法來處理這個我'我失蹤了。 在那兒?
你需要用括號括起你的論點:
something('hello') { do_it }
這應該工作。
如果你想要“def something”來接受一個塊,你需要向該塊產生數據。 例如:
#to uppercase string
def something(my_input)
yield my_input.upcase
end
# => "HELLO WORLD"
something("hello world") { |i| puts i}
呃,怎么樣:
>> def something(arg1 , &block)
>> yield block
>> end
=> nil
>> def do_it
>> puts "Doing it!"
>> end
=> nil
>> something('hello') { do_it }
"Doing it!"
=> nil
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.