ruby 输出彩色内容到控制台
程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色、符号等来做标识。
ruby 也支持设置输出内容的颜色,比如运行以下代码:
以下内容是百度到的,因发现很多博客都是同样的写法,所以出处反而没法写了。。。
puts "\033[1mBackground Colors...\033[0m\n"
puts " \033[40m\033[37mBlack (40), White Text\033[0m\n"
puts " \033[41mRed (41)\033[0m\n"
puts " \033[42mGreen (42)\033[0m\n"
puts " \033[43mYellow (43)\033[0m\n"
puts " \033[44mBlue (44)\033[0m\n"
puts " \033[45mMagenta (45)\033[0m\n"
puts " \033[46mCyan (46)\033[0m\n"
puts " \033[47mWhite (47)\033[0m\n"
控制台能看到这样的结果:
我们研究这个输出的内容:"\033[47mWhite (47)\033[0m\n",发现重点就是 \033[47m 和 \033[0m\n,剩下的是输出的内容。
基于该原理,我们可以写出通用的调用方式:
def puts_with_style(style_index, *contents)
contents.each do |content|
puts "\033[#{style_index}m#{content}\033[0m\n"
end
nil
end
做了下循环调用测试,样式最高支持到 107,运行下面代码可测试:
108.times do |index|
puts_with_style(index, index, " color")
end
猜想这可能是控制台的输出规则,尝试了下 golang,发现该方式也是可行的。那我估计 python 等其他语言也是一样,大家可以尝试尝试。