ruby – 简化字符串乘法串联
s是一个字符串,这看起来很啰嗦 – 我怎样才能简化这个? :
if x === 2 z = s elsif x === 3 z = s+s elsif x === 4 z = s+s+s elsif x === 5 z = s+s+s+s elsif x === 6 z = s+s+s+s+s
谢谢
像这样的东西是最简单和最有效的( 如ideone.com上所见 ):
puts 'Hello' * 3 # HelloHelloHello s = 'Go' x = 4 z = s * (x - 1) puts z # GoGoGo
API链接
ruby-doc.org –
String
:str * integer => new_str
复制 – 返回包含接收器整数副本的新
String
。"Ho! " * 3 #=> "Ho! Ho! Ho! "
z='' (x-1).times do z+=s end
伪代码(不是ruby)
if 1 < int(x) < 7 then z = (x-1)*s
例如,对于最多5星级的评级系统,您可以使用以下内容:
def rating_to_star(rating) 'star' * rating.to_i + 'empty_star' * (5 - rating.to_i) end