Ruby 中的管道符号是什么? [英] What are those pipe symbols for in Ruby?

查看:23
本文介绍了Ruby 中的管道符号是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Ruby 中的管道符号是什么?

What are the pipe symbols for in Ruby?

我正在学习 Ruby 和 RoR,具有 PHP 和 Java 背景,但我不断遇到这样的代码:

I'm learning Ruby and RoR, coming from a PHP and Java background, but I keep coming across code like this:

def new 
  @post = Post.new

  respond_to do |format|
    format.html # new.html.erb
    format.xml { render :xml => @post }
  end
end

|format| 部分在做什么?PHP/Java 中这些管道符号的等效语法是什么?

What is the |format| part doing? What's the equivalent syntax of these pipe symbols in PHP/Java?

推荐答案

它们是产生给块的变量.

They are the variables yielded to the block.

def this_method_takes_a_block
  yield(5)
end

this_method_takes_a_block do |num|
  puts num
end

输出5".一个更神秘的例子:

Which outputs "5". A more arcane example:

def this_silly_method_too(num)
  yield(num + 5)
end

this_silly_method_too(3) do |wtf|
  puts wtf + 1
end

输出为9".

这篇关于Ruby 中的管道符号是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆