【发布时间】:2014-01-13 04:01:06
【问题描述】:
我正在尝试解决 Ruby 教程中的一个问题,它询问以下问题 -
创建一个名为 new_array 的方法。它应该接受四个参数并返回一个具有相同参数的数组。首先定义方法结构:**
def new_array(a,b,c,d)
# return an array consisting of the arguments here
end
然后它提供 Specs 对问题进行逆向工程。**
describe "new_array" do
it "creates an array of numbers" do
new_array(1,2,3,4).should eq([1,2,3,4])
end
it "creates an array of strings" do
new_array("a", "b", "c", "d").should eq(["a", "b", "c", "d"])
end
end
describe "first_and_last" do
it "creates new array with numbers" do
first_and_last([1,2,3]).should eq([1,3])
end
it "creates new array with strings" do
first_and_last(["a", "b", "c", "d"]).should eq(["a", "d"])
end
end
您将从您的解决方案中找到以下内容:
- new_array 创建一个数字数组
- new_array 创建一个字符串数组
到目前为止,我有以下代码,但似乎无法在方法 new_array 中放置另一个数组,以便我也可以生成一个字符串数组。
def new_array(a,b,c,d)
# return an array consisting of the arguments here
numbers = [1,2,3,4]
string = ["a","b","c","d"]
end
new_array(1,2,3,4)
new_array("a","b","c","d")
如何在上述方法结构中获取四个参数并返回具有相同参数的数组?
【问题讨论】:
-
可能是因为它需要两种方法,
new_array和first_and_last,所以您无法在教程中继续前进? @xdazz 的回答肯定会奏效。能否提供教程链接? -
@CarySwoveland 感谢您的回复。实际上, first_and_last 方法并不重要,因为我还没有到达那里。我只是坚持如何在方法中直观地表示两个数组。但是,您是对的,xdazz 的答案应该有效。不幸的是,我没有分享教程的好方法。
-
您的评论“直观地表示方法中的两个数组”向我表明您没有以正确的方式看待这个问题。当您将参数 x、y、z 传递给
new array时,它们可以是任何对象。也许 x 是一个 Fixnum,比如 3,y 是类 Hash 的一个实例,而 y 是另一个方法。new array只不过是创建一个数组,将这些对象粘贴到数组中(以相同的顺序)并将数组传回给您。new array不在乎那些对象是什么——它们只是对象。所以,如果你传递了所有的 Fixnums,你会得到一个包含这些 Fixnums 的数组,以此类推。