我经常看到有这种写法 |x|x +1 都搞不懂这种写法的意思 因为有||这种符号 也查不出啥子意思
你这个例子说的不太清楚,最好能贴出一个完整一点的例子。| 这个有或的含义,具体情况具体分析
|
http://www.ruby-doc.org/core-2.1.5/doc/syntax/calling_methods_rdoc.html#label-Block+Argument
有点类似于其他语言里的 lambda 表达式,而 | | 之间的则是参数。 比如 C# LINQ 里你可以这样写 Array.Where(p => p.Name == 'Jon') 换做 Ruby 就是 array.select { |p| p.name == 'Jon' }
Array.Where(p => p.Name == 'Jon')
array.select { |p| p.name == 'Jon' }
可以用 lambda 代替。
func = -> (a,b) { puts "do sth. with a and b" }
xxx.each(&func) 其他类似。