这个语法叫什么?{| n | "用户#{n}"}

2 ruby syntax

{ |n| "user#{n}" }
Run Code Online (Sandbox Code Playgroud)

带两根管子的花括号.这是一个荒谬的问题,我知道,但试图谷歌这个语法的名称已被证明是不可能的.

Usa*_*Man 5

它被称为块.ruby中有两种类型的块.一种是花括号中的这种语法,第二种是do end.这两者都是可以互换的,但花括号具有更高的优先级.因此这些程序是可以互换的:

my_array.each do |element|
  puts element
end


my_array.each {|element|
  puts element
}
Run Code Online (Sandbox Code Playgroud)

这篇文章详细讨论了两者之间的区别,以及它们何时不可互换.

  • 感谢您关于优先级的链接.那很有意思.我没有意识到这一点. (2认同)