color - 让你的输出带点颜色

简介: color - 让你的输出带点颜色

color

color 是一个可以让你输出带颜色文本的库。

安装

go get github.com/fatih/color

示例

  1. 输出到控制台
// 这会直接输出到控制台
color.Cyan("Prints text in cyan.")
// 每个调用末尾会自动加上换行
color.Blue("Prints %s in blue.", "text")
// 这种调用使用默认的背景色
color.Red("We have red")
color.Magenta("And many others ..")

效果:

  1. 混合样式:颜色 + 粗体/斜体、下划线等
// 创建一个新的 color 对象,然后加上 “下划线” 样式
c := color.New(color.FgCyan).Add(color.Underline)  // 下划线
c.Println("Prints cyan text with an underline.")
// 创建一个新的 color 对象,颜色为 FgCyan,字体为粗体
d := color.New(color.FgCyan, color.Bold)  // 粗体
d.Printf("This prints bold cyan %s\n", "too!.")
// 创建一个颜色为 FgRed 的 color 对象
red := color.New(color.FgRed)
// 在这个颜色为 FgRed 的 color 对象的基础上,加上 “粗体” 的样式
boldRed := red.Add(color.Bold) // 红色 + 粗体
boldRed.Println("This will print text in bold red.")
// 在 红色 + 粗体 的 color 对象的基础上,加上 “白色背景” 的样式
whiteBackground := red.Add(color.BgWhite) // 红色 + 粗体 + 白色背景
whiteBackground.Println("Red text with white background.")

效果:

  1. 使用自定义的输出方向(实现了 io.Writer 即可):比如文件等
// 使用自定义的 `io.Writer` 保存 color 的输出
color.New(color.FgBlue).Fprintln(myWriter, "blue color!")
blue := color.New(color.FgBlue)
blue.Fprint(writer, "This will print text in blue.")
  1. 自定义 print 函数:PrintFunc
// 创建一个新的自定义的 print 函数
red := color.New(color.FgRed).PrintfFunc()
red("Warning")
red("Error: %s", err)
// 创建自定义打印函数,并且添加 粗体 + 绿色 样式
notice := color.New(color.Bold, color.FgGreen).PrintlnFunc()
notice("Don't forget this...")
  1. 自定义 fprint 函数:FprintFunc
// 创建一个自定义的 fprint 函数
blue := color.New(color.FgBlue).FprintfFunc()
blue(myWriter, "important notice: %s", stars)
// 创建一个自定义的 fprint 函数,并且 粗体 + 绿色 字体
success := color.New(color.Bold, color.FgGreen).FprintlnFunc()
success(myWriter, "Don't forget this...")
  1. 无颜色字符串里面穿插有颜色的字符串
// SprintFunc 调用的效果是返回一个字符串,而不是直接输出了
yellow := color.New(color.FgYellow).SprintFunc()
red := color.New(color.FgRed).SprintFunc()
fmt.Printf("This is a %s and this is %s.\n", yellow("warning"), red("error"))
info := color.New(color.FgWhite, color.BgGreen).SprintFunc()
fmt.Printf("This %s rocks!\n", info("package"))
// 也可以直接使用 helper 函数
fmt.Println("This", color.RedString("warning"), "should be not neglected.")
fmt.Printf("%v %v\n", color.GreenString("Info:"), "an important message.")
// windows 也支持
fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS"))
  1. 在现有的代码上使用
// 在 `color.Set()` 和 `color.Unset()` 之间的代码会有颜色
color.Set(color.FgYellow)
fmt.Println("Existing text will now be in yellow")
fmt.Printf("This one %s\n", "too")
color.Unset() // 需要手动调用 Unset,否则后续代码输出都会有颜色
// 也可以添加其他样式,这里加了 粗体
color.Set(color.FgMagenta, color.Bold)
defer color.Unset() // 函数结束的时候 Unset
fmt.Println("All text will now be bold magenta.")

禁用颜色

color.NoColor = true

其他解决方案


目录
相关文章
|
18天前
|
前端开发
字体的颜色(color属性)
【10月更文挑战第7天】字体的颜色(color属性)
39 1
|
6月前
|
JavaScript 前端开发
uVeiw color 颜色值
uVeiw color 颜色值
47 0
字符串输出颜色,字体颜色,背景色
字符串输出颜色,字体颜色,背景色
|
6月前
|
前端开发
rgba、十六进制颜色是什么?如何这两个表达白色、黑色、红色、绿色、蓝色?
rgba、十六进制颜色是什么?如何这两个表达白色、黑色、红色、绿色、蓝色?
常用颜色RGB、灰度值、取色值、透明度。
常用颜色RGB、灰度值、取色值、透明度。
617 0
RGB颜色设置错误
RGB颜色设置错误
147 0
|
C#
c# 颜色RGB到HSB互相转换
原文:c# 颜色RGB到HSB互相转换 1 /// 2 /// 色相,饱和度,亮度转换成rgb值 3 /// 4 /// 5 public static float[] HSB2RGB(float[...
2031 0