Ruby 中的管道符号是什么意思?
我正在学习 Ruby 和 RoR,来自 PHP 和 Java 背景,但我不断遇到这样的代码:
def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
end
end
|format|
部分在做什么? PHP/Java 中这些管道符号的等效语法是什么?
最佳答案
它们是产生给 block 的变量。
def this_method_takes_a_block
yield(5)
end
this_method_takes_a_block do |num|
puts num
end
输出“5”。一个更神秘的例子:
def this_silly_method_too(num)
yield(num + 5)
end
this_silly_method_too(3) do |wtf|
puts wtf + 1
end
输出是“9”。
关于ruby - Ruby 中的管道符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/665576/