我是Ruby的新手,我想要一部分字符串被着色。对于这一点,我写了一个类画家Colorise在Ruby中的部分字符串
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
但是这意味着一个原因的方法太多。有没有一种方法可以使这种情况变得生动?
这是因为您使用单引号的颜色。像'\ 033'这样的转义序列不是用单引号处理,而是用双引号https://stackoverflow.com/a/16601500/3072566 – litelite
哦谢谢,你可以添加这个作为答案,以便它可以帮助别人。它完美的作品。 – Rajkiran