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 等其他语言也是一样,大家可以尝试尝试。

猜你喜欢

转载自www.cnblogs.com/linying1991/p/12021828.html