golang终端彩色文本输出插件库go-colortext的使用
golang终端彩色文本输出插件库go-colortext的使用
go-colortext是一个用于在控制台改变文本和背景颜色的包,支持Windows和其他操作系统。
在Windows系统下,它使用控制台API实现彩色输出;在其他系统下,则使用ANSI转义码实现彩色文本输出。
安装方法
go get github.com/daviddengcn/go-colortext
使用示例
下面是一个完整的示例demo,展示如何使用go-colortext库输出彩色文本:
package main
import (
"fmt"
"github.com/daviddengcn/go-colortext"
)
func main() {
// 设置前景色为绿色,不亮色
ct.Foreground(ct.Green, false)
fmt.Println("这是一行绿色文字")
// 改变颜色:红色亮色前景,白色背景
ct.ChangeColor(ct.Red, true, ct.White, false)
fmt.Println("红色亮色前景,白色背景的文字")
// 重置颜色
ct.ResetColor()
fmt.Println("恢复默认颜色")
// 更多颜色示例
colors := []ct.Color{
ct.Black,
ct.Red,
ct.Green,
ct.Yellow,
ct.Blue,
ct.Magenta,
ct.Cyan,
ct.White,
}
for _, c := range colors {
// 前景色
ct.Foreground(c, false)
fmt.Printf("前景色: %v\n", c)
// 亮色前景
ct.Foreground(c, true)
fmt.Printf("亮色前景: %v\n", c)
// 背景色
ct.Background(c, false)
fmt.Printf("背景色: %v\n", c)
// 重置颜色
ct.ResetColor()
}
}
主要函数说明
-
Foreground(color Color, bright bool)
- 设置前景色color
: 颜色值(如ct.Red, ct.Green等)bright
: 是否使用亮色
-
Background(color Color, bright bool)
- 设置背景色 -
ChangeColor(fore Color, foreBright bool, back Color, backBright bool)
- 同时改变前景和背景色 -
ResetColor()
- 重置为默认颜色
可用颜色常量
const (
None Color = iota
Black
Red
Green
Yellow
Blue
Magenta
Cyan
White
)
许可证
go-colortext使用BSD/MIT许可证。
更多关于golang终端彩色文本输出插件库go-colortext的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang终端彩色文本输出插件库go-colortext的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-Colortext 终端彩色文本输出库使用指南
go-colortext 是一个简单易用的 Golang 库,用于在终端输出彩色文本。下面我将详细介绍它的使用方法。
安装
go get github.com/daviddengcn/go-colortext
基本用法
package main
import (
ct "github.com/daviddengcn/go-colortext"
)
func main() {
// 改变后续文本颜色
ct.ChangeColor(ct.Red, true, ct.None, false)
println("红色文本")
// 重置颜色
ct.ResetColor()
println("默认颜色")
// 直接打印彩色文本
ct.Println(ct.Green, true, "绿色加粗文本")
// 使用颜色常量
ct.Printf(ct.Yellow, false, ct.Blue, "黄色文本在蓝色背景上\n")
}
颜色常量
go-colortext 提供了以下颜色常量:
const (
None = iota
Black
Red
Green
Yellow
Blue
Magenta
Cyan
White
)
主要函数
1. ChangeColor
func ChangeColor(color Color, bright bool, bgColor Color, bgBright bool)
color
: 文本颜色bright
: 是否高亮/加粗bgColor
: 背景颜色bgBright
: 背景是否高亮
示例:
ct.ChangeColor(ct.Magenta, true, ct.Black, false)
fmt.Println("紫色加粗文本,黑色背景")
ct.ResetColor()
2. ResetColor
重置为终端默认颜色。
3. Print/Println/Printf
直接打印彩色文本的便捷方法:
func Print(color Color, bright bool, v ...interface{})
func Println(color Color, bright bool, v ...interface{})
func Printf(color Color, bright bool, format string, a ...interface{})
示例:
ct.Println(ct.Cyan, false, "青色普通文本")
ct.Printf(ct.White, true, ct.Red, "白色加粗文本在红色背景上: %d\n", 42)
完整示例
package main
import (
"fmt"
ct "github.com/daviddengcn/go-colortext"
)
func main() {
// 简单颜色示例
colors := []ct.Color{ct.Red, ct.Green, ct.Yellow, ct.Blue, ct.Magenta, ct.Cyan}
for i, c := range colors {
ct.Printf(c, true, "颜色 %d\n", i+1)
}
ct.ResetColor()
// 表格样式示例
headers := []string{"ID", "Name", "Status"}
data := [][]string{
{"1", "Alice", "Active"},
{"2", "Bob", "Inactive"},
{"3", "Charlie", "Pending"},
}
// 打印表头
ct.ChangeColor(ct.White, true, ct.Blue, false)
for _, h := range headers {
fmt.Printf("| %-10s ", h)
}
fmt.Println("|")
ct.ResetColor()
// 打印数据行
for i, row := range data {
color := ct.Green
if i%2 == 0 {
color = ct.Cyan
}
ct.ChangeColor(color, false, ct.None, false)
for _, cell := range row {
fmt.Printf("| %-10s ", cell)
}
fmt.Println("|")
}
ct.ResetColor()
// 错误消息示例
ct.Println(ct.Red, true, "错误: 文件未找到!")
// 警告消息示例
ct.Println(ct.Yellow, true, "警告: 磁盘空间不足")
// 成功消息示例
ct.Println(ct.Green, true, "成功: 操作已完成")
}
注意事项
- 不是所有终端都支持彩色输出,特别是在Windows上可能需要额外配置
- 使用后最好调用
ResetColor()
恢复默认颜色,以免影响后续输出 - 颜色在重定向到文件时通常不会显示
- 对于更复杂的终端UI,可以考虑更强大的库如
termbox-go
或tcell
go-colortext 是一个轻量级的解决方案,适合简单的彩色文本输出需求。它的API简单直接,是快速为命令行程序添加颜色的好选择。