关于方法 "select" 和 "join"
About the method "select" and "join"
所以我之前发布了一个关于显示非素数因子的问题,并得到了这个作为解决方案。
下面是代码的一部分,但我在理解其中的一些术语时有点困难(因为我对 ruby 比较陌生)。
def factors(n)
(1..n/2).select{|e| (n%e).zero?}.push(n)
end
例如,
- 方法 select 的一般作用是什么?
- .zero 是什么意思?做什么?
然后,
puts "#{n} is not a prime number =>#{factors(n).join(',')}"
.join(',') 有什么作用?
如果有人能用基本术语或简单概念向我解释这些术语,我将不胜感激。
select
方法过滤集合。您在块中指定条件(谓词)和匹配该条件的 select
returns 个项目。
[1,2,3,4].select(&:even?)
=> [2, 4]
i.zero?
是另一种写法i == 0
[0,2,3,0].select(&:zero?)
=> [0, 0]
join
方法将集合作为字符串连接起来,参数作为项目之间的分隔符
[0,2,3,0].select(&:zero?).join(' and ')
=> "0 and 0"
备注
[1,2,3].select(&:even?)
是比较简单的写法
[1,2,3].select { |item| item.even? }
我将尝试通过文档中的链接和文本进行解释
Returns 通过将数组的每个元素转换为字符串创建的字符串,由给定的分隔符分隔。如果分隔符为 nil,则使用当前的 $,。如果分隔符和 $, 均为 nil,则使用空字符串。
[ "a", "b", "c" ].join #=> "abc"
[ "a", "b", "c" ].join("-") #=> "a-b-c"
Returns 包含 ary 的所有元素的新数组,给定块 returns 为真值。
如果没有给出块,则返回一个 Enumerator。
[1,2,3,4,5].select { |num| num.even? } #=> [2, 4]
a = %w{ a b c d e f }
a.select { |v| v =~ /[aeiou]/ } #=> ["a", "e"]
zero? → true or false
Returns true if num has a zero value.
Ruby html 文档:ruby-doc.org
所以我之前发布了一个关于显示非素数因子的问题,并得到了这个作为解决方案。
下面是代码的一部分,但我在理解其中的一些术语时有点困难(因为我对 ruby 比较陌生)。
def factors(n)
(1..n/2).select{|e| (n%e).zero?}.push(n)
end
例如,
- 方法 select 的一般作用是什么?
- .zero 是什么意思?做什么?
然后,
puts "#{n} is not a prime number =>#{factors(n).join(',')}"
.join(',') 有什么作用?
如果有人能用基本术语或简单概念向我解释这些术语,我将不胜感激。
select
方法过滤集合。您在块中指定条件(谓词)和匹配该条件的 select
returns 个项目。
[1,2,3,4].select(&:even?)
=> [2, 4]
i.zero?
是另一种写法i == 0
[0,2,3,0].select(&:zero?)
=> [0, 0]
join
方法将集合作为字符串连接起来,参数作为项目之间的分隔符
[0,2,3,0].select(&:zero?).join(' and ')
=> "0 and 0"
备注
[1,2,3].select(&:even?)
是比较简单的写法
[1,2,3].select { |item| item.even? }
我将尝试通过文档中的链接和文本进行解释
Returns 通过将数组的每个元素转换为字符串创建的字符串,由给定的分隔符分隔。如果分隔符为 nil,则使用当前的 $,。如果分隔符和 $, 均为 nil,则使用空字符串。
[ "a", "b", "c" ].join #=> "abc"
[ "a", "b", "c" ].join("-") #=> "a-b-c"
Returns 包含 ary 的所有元素的新数组,给定块 returns 为真值。
如果没有给出块,则返回一个 Enumerator。
[1,2,3,4,5].select { |num| num.even? } #=> [2, 4]
a = %w{ a b c d e f }
a.select { |v| v =~ /[aeiou]/ } #=> ["a", "e"]
zero? → true or false
Returns true if num has a zero value.
Ruby html 文档:ruby-doc.org