gpt4 book ai didi

Ruby - 链接方法和返回数组

转载 作者:太空宇宙 更新时间:2023-11-03 16:11:07 25 4
gpt4 key购买 nike

我有一些用于返回数组的类的方法,如 ["1", "3", "2", "6", "2"]。没关系,这些是字符串数组,而不是数字。我有另一种方法,它接受一个数组,并将其转换为单个字符串,例如 1 3 2 6 2

class Turn
def initialize
@rolls = 1
@dice = []
end

def roll
@roll = []
x = 5 - @dice.length
x.times do |i|
@roll[i] = rand(6) + 1
end
@roll # ["1", "3", "2", "6", "2"]
end

def show
@dice # ["1", "3", "6"]
end

def line(something)
temp = ""
something.each do |x|
temp << x + " "
end
puts temp # "1 3 6 " or "1 3 2 6 2 "
end
end

然后我希望能够将方法链接在一起,这样我就可以做

first = Turn.new
first.roll.line
first.show.line

但是,我实在不知道该怎么做,网上也没怎么找到。我看到 self 被返回,但我真的不知道它做了什么。如果我将 line 方法中的代码移到另一个方法中,它就可以工作,所以问题实际上只是处理链接和返回。

如果有人不仅可以帮助编写代码,还可以帮助了解链接如何在返回值方面工作以及返回 self 如何工作,那就太棒了。

谢谢!

最佳答案

由于您的 #roll#show 方法返回一个数组,您需要定义一个方法 Array#line 来实际能够执行 first.roll.line

顺便说一句,已经有 Array#join 也可以将数组元素连接成一个字符串,就像您的#line 方法一样,因此您也可以使用 first.roll.join(' ') 并摆脱你的#line 方法。

关于Ruby - 链接方法和返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com