【发布时间】:2017-01-11 05:45:28
【问题描述】:
尝试从函数调用数组到 assert_equal 以确保它返回预期的字符串。
这是我的功能:
def array_mod
a = *(1..100)
a.each { |i| if i % 3 == 0 && i % 5 == 0; i = "fifteen" elsif i % 3 == 0; i = "three" elsif i % 5 == 0; i = "five" else i = i end }
end
这是我尝试调用它的尝试。
require "minitest/autorun"
require_relative "array_modulus.rb"
class TestArrayFunction < Minitest::Test
def test_array1
results = array_mod
assert_equal(100, results.length)
end
def test_array2
results = array_mod
assert_equal("three", results[2])
end
end
测试通过了results.length,但将"three" 返回为3,一个整数。
我知道我可以创建一个数组并这样做
def abc
arr = []
*(1..100) do |i|
if i % 3 == 0
i = "three"
else
i = I
end
但是我很好奇我是否可以用以前的写法来做到这一点。
抱歉有任何错误,这是我在手机上写的。
【问题讨论】:
-
只是出于好奇:您为什么选择我标记为非惯用的选项之一,而不是我在回答您之前的问题时标记为惯用的选项之一?
-
我试图沿着我开始时的思路走下去。我很好奇这是否可能是非惯用方式。
-
对不起,如果我问了一个重复的问题。当我提到评论框不适合发布更多问题的代码时,你说要问另一个问题,我认为这就是你的意思。