我有这个方法应该从一个常量数组中生成一个随机选择。但该方法不会返回结果。事实上,它不会回报我尝试的任何东西。
以下是代码:
COLORS = ["B", "G", "R", "O", "Y", "P"]
class Computer
attr_reader :random_code
def initialize
@random_code = secret_code
end
def secret_code
sample_code = []
sample_code << COLORS.sample(4)
return sample_code
end
def add(a, b)
return a + b
end
end
c = Computer.new
c.add(5, 10)
添加&#34;添加&#34;方法只是为了测试它,但它也不起作用。当我说它不起作用时,我的意思是它在控制台中没有显示任何内容。
答案 0 :(得分:2)
正如@BroiSatse指出的那样,问题只是你没有告诉Ruby在控制台上打印任何东西。
以下是我修复和简化代码的方法:
class Computer
COLORS = ["B", "G", "R", "O", "Y", "P"]
attr_reader :random_code
def initialize
@random_code = secret_code
end
def secret_code
COLORS.sample(4)
end
def add(a, b)
a + b
end
end
c = Computer.new
puts c.add(5, 10)
还有一些值得注意的事情:
如果COLORS
是您的Computer类固有的东西,您可以将其拉入类中并使其成为类常量。您可以在课程中引用COLORS
as-is,但请记住,如果您想在类定义之外的任何地方引用COLORS
,则必须将其称为Computer::COLORS
为了访问它。你现在拥有它的方式也很好,这只是一个小代码组织的事情。
您的secret_code
功能可以简化为COLORS.sample(4)
。在Ruby中,您不必使用return
关键字,并且在不需要时将其保留在外,这是惯用的。函数定义中的最后一个值是返回的值。此外,由于Array#sample
已经返回一个数组,因此无需定义空数组[]
并添加它。