我使用可选参数创建一个简单的repeat(string, number)
函数,以多次重复字符串。我对论坛有很好的看法,并试图使用它们 - 所以请原谅我,如果这已被回答。当我用多次重复函数调用函数时,*arg
创建了一个整数数组,我似乎无法将其转换为带有.map(&:to.i)的整数或简单地array.to_i。任何帮助这里感谢:)可选参数Array.to_i仍然返回数组
,因为它试图评估number < 3
def echo(string)
string
end
def shout(string)
echo(string).upcase
end
def repeat(string, *number)
number = number.map { |i| i.to_i }
outputStr = ''
if number < 3
echo(string) + " " + echo(string)
#puts number.inspect.length
else
#count = number
while number > 0
number -= 1
outputStr += echo(string) + " "
end
outputStr[0, outputStr.length - 1]
#
# number.times do {|i| outputStr += echo(string) + " " + echo(string)}
# end
# outputStr
end
end
repeat('hi', 3)
你打算把这个称为'repeat('hi',3,1,2)'还是带有一些任意数字的结尾? – tadman
另外:'(['hi'] * 3).join('')'基本上做你想要的。 – tadman
如果你只传递一个数字给你的方法,那么将它定义为'def repeat(string,number)'会更好。 –