我正在用ruby编写一个命令行脚本,并且我正在尝试给一段代码行着色。目前,我使用的是'colorize‘gem,但从文档中看,它一次只能为一行文本着色
puts "test".colorize(:green)
puts "test".colorize(:green)
puts "test".colorize(:green)但是,这对我来说似乎有点多余,我想给所有的文本行着色,但只调用“colorize(:green)”一次,而不是三次。
如何在Ruby中做到这一点?
发布于 2014-07-25 10:50:30
为此定义一个方法:
def putsg(text)
puts text.colorize(:green)
end然后调用该方法:
putsg "test"
putsg "test"
putsg "test"发布于 2014-07-25 10:53:58
puts ["test", "test", "test"].join($/).colorize(:green)或
puts ["test", "test", "test"].map{|s| s.colorize(:green)}发布于 2018-04-08 22:08:35
关于您的声明“文档中的...but一次只允许您为一行文本着色”
你可以用不同的颜色给同一条线的不同部分上色。
s = "Hello" ss = "world" puts "#{s.red} #{"there".white} #{s.blue}"
你也可以像这样实现你的目标:
s = "test" puts "#{s}\n#{s}\n#{s}".green
或者:
s1 = "check" s2 = "this" s3 = "out" puts "#{s1}\n#{s2}\n#{s3}".green
https://stackoverflow.com/questions/24947043
复制相似问题