【发布时间】:2014-10-03 03:23:58
【问题描述】:
我坚持使用来自 exercism.io 的这个练习:
sum_of_multiples_test.rb 的一部分
...
def test_sum_to_1000
skip
assert_equal 233168, SumOfMultiples.to(1000)
end
def test_configurable_7_13_17_to_20
assert_equal 51, SumOfMultiples.new(7, 13, 17).to(20)
end
...
sum.rb
class SumOfMultiples
def initialize(*args)
@args = args ||= [3,5]
end
def to(max)
ary = []
return 0 if max < 2
@args.each do |m|
for i in 0..max-1
ary << i if i % m == 0
end
end
ary.uniq!.inject(:+)
end
end
如果我使用类方法self.to,它看不到我的实例变量@args,如果我使用 实例方法“def to”第一个测试不通过。有没有办法以某种方式“合并”两者?
【问题讨论】:
标签: ruby