我需要制作一种重复给定单词的方法,但我认为我设计错了。我需要单词之间的空格,我在这里缺少什么?
def repeat(word, repeats=2)
sentence = word.to_s * repeats
return sentence
end
当然,您缺少空格。
你可以这样做:
def repeat(word, repeats = 2)
Array.new(repeats, word).join(" ")
end
您可以编写如下代码:
def repeat(word, repeats=2)
([word] * repeats).join(" ")
end
repeat("Hello",4)
# => "Hello Hello Hello Hello"
这是一种更接近您的方法且不使用临时数组的方法:
def repeat(word, repeats=2)
("#{word} " * repeats).chop
end
"#{word} "
使用字符串插值将单词转换为字符串并附加一个空格… * repeats
创建一个包含重复副本的字符串.chop
返回删除最后一个字符的字符串(尾随空格)不必创建数组会使代码更快一些。
w = 'kokot'
n = 13
n.times.map { w.each_char.to_a.shuffle.join }.tap { |a, _| a.capitalize! }.join(' ') << ?.