我不明白:&此示例中注入方法的参数:
[1, 2].map do |id|
my_custom_method(MyModel.find(id))
end).inject(:&).map(&:category).uniq.compact.sort
Run Code Online (Sandbox Code Playgroud)
:+我感觉合理:
[1, 2, 3].inject(:+)
Run Code Online (Sandbox Code Playgroud)
是相同的:
[1, 2, 3].inject { |sum, number| sum + number }
Run Code Online (Sandbox Code Playgroud)
:&如上例所示,这是什么意思?
如果您指定一个符号,则集合中的每个元素都将传递给 memo 的命名方法
所以&只是Integer#&方法
按位与;如果 self 和 other 中的相应位都为 1,则结果中的每个位为 1,否则为 0
[7, 5].inject(:&) # => 5
Run Code Online (Sandbox Code Playgroud)
它是一样的
7 & 5 # => 5
Run Code Online (Sandbox Code Playgroud)
以及它是如何运作的
7.to_s(2) # => "111"
5.to_s(2) # => "101"
Run Code Online (Sandbox Code Playgroud)
7: 1 1 1
& & &
5: 1 0 1
--------
5: 1 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |