我发现Ruby中的这段代码非常有趣
(1..4).inject(&:+)
Run Code Online (Sandbox Code Playgroud)
好的,我知道是什么inject
,我知道这段代码基本上相当于
(1..4).inject(0) {|a,n| a + n}
Run Code Online (Sandbox Code Playgroud)
但它究竟是如何运作的呢?
为什么&:+
和写块一样{|a,n| a + n}
?
为什么它不需要初始值?我很好,正常值为0,但(1..4).inject(&:*)
也有效,初始值必须为1 ...
归档时间: |
|
查看次数: |
2603 次 |
最近记录: |