我是Ruby的新手,我希望将字符串的一部分着色。为此,我写了一个类Painter
class Painter
Red='\033[0;31m' # Red color
Green='\033[0;32m' # Green color
.
.
.
def paint(text, color)
return "#{color}#{text}\e[0m"
end
end
我使用它的方式是
puts "Green color looks like #{Painter.new.paint("this", Painter::Green)} and Red color looks like #{Painter.new.paint("this", Painter::Red)}"
如果我编写像
这样的方法,我可以解决问题def greenify(text)
return "\033[0;32m#{text}\e[0m"
end
但这对于一个原因来说意味着太多的方法。有没有办法让我能够做到这一点?
答案 0 :(得分:2)
如果您想使用现有解决方案,我建议您查看gem Colorize。您不仅可以为字符串着色,还可以使它们变粗。例如:
require 'colorize'
puts 'this is a blue string'.blue
puts "this is part #{'blue'.blue} and part #{'red'.red}"
puts "this is part #{'blue'.blue}, part #{'red'.red} and bold".bold
答案 1 :(得分:0)
这是因为你使用单引号作为颜色。像foreach($requests as $request){
echo $request->user->name;
echo '<br>';
echo $request->accepted;
echo '<br>';
}
这样的转义序列不是用单引号处理的,而是双引号。