我需要puts
一个像
puts "#{movie.title}, #{movie.imdb_rating.round(3)}, #{movie.imdb_ratings_count}"
因此输出将为Gone Girl, 8.23, 302532
然而,由于我总是需要添加#{}
和""
,
快速puts
有什么好方法,而不是总是添加#{}
和""
?
答案 0 :(得分:3)
我建议使用join
方法构建数组。
def printStrings do *strings
strings.join(', ')
end
printStrings 'apple', 'banana', 'orange' #'apple, banana, orange'
或者,您可以使用一个称为输出字段分隔符的特殊变量,您可以将其作为$,
进行访问。 (其默认值为nil
)
$, = ', '
print 'apple', 'banana', 'orange' #'apple, banana, orange'
$, = nil
此方法在print
答案 1 :(得分:3)
将一个方法添加到Movie类是有意义的:
class Movie
def to_desc
"#@title, #{@imdb_rating.round(3)}, #@imdb_ratings_count"
end
end
答案 2 :(得分:2)
LukeP的答案很好,如果你想在每个值之间使用相同的标点符号,但如果你想要一些不同格式的东西,例如Gone Girl - 8.23,302532,你可以使用ruby的%运算符进行字符串格式化:
"%s - %s, %s" % [movie.title, movie.imdb_rating.round(3), movie.imdb_ratings_count]
答案 3 :(得分:1)
Ruby的印刷很扎实,但并不令人惊讶。你看过Awesome Print宝石了吗?
https://github.com/michaeldv/awesome_print
这是我用来做优雅打印的方法。有点不清楚你要求如何格式化它,但这个宝石似乎会给你足够的选择来解决你的问题。