golang,go,博客,开源,编程
fatih/color
是一个流行的 Go 语言库,用于在终端中输出彩色文本和样式化的内容。由开发者 Fatih Arslan 创建,它简化了 ANSI 转义码的使用,使开发者能够轻松为 CLI 工具、日志系统等添加颜色和样式。
丰富的颜色和样式支持
跨平台兼容
链式调用与组合
color.New(color.FgRed).Add(color.Bold)
)组合多种样式。高性能
go get github.com/fatih/color
package main
import "github.com/fatih/color"
func main() {
color.Red("这是红色文本")
color.Blue("这是蓝色文本")
color.New(color.FgWhite, color.BgGreen).Println("白字绿底")
color.Green("%s 和 %s", "绿色文本", "更多绿色")
}
// 创建自定义样式
customColor := color.New(color.FgCyan, color.Bold, color.Underline)
customColor.Println("青色、加粗、下划线文本")
color.NoColor = true // 全局禁用颜色
color.NoColor = false // 启用颜色(默认)
// 链式调用组合样式
errorStyle := color.New(color.FgRed, color.Bold).Add(color.BgWhite)
errorStyle.Println("错误提示:红色加粗白底")
// 256 色
c := color.New(color.Color(196)) // 鲜艳的红色
c.Println("256 色模式")
// RGB 真彩色(需终端支持)
rgbColor := color.NewRGB(255, 0, 128) // R=255, G=0, B=128
rgbColor.Println("RGB 真彩色文本")
// 类似 fmt.Printf
color.Yellow("用户 %s 登录失败,尝试次数:%d", "Alice", 5)
// 返回字符串(不直接输出)
msg := color.HiGreenString("成功!")
fmt.Println(msg)
golang.org/x/sys/windows
自动启用 ANSI 支持(Win10+)。package main
import (
"github.com/fatih/color"
)
func main() {
// 错误信息(红色加粗)
errorColor := color.New(color.FgRed, color.Bold)
errorColor.Println("错误:文件未找到")
// 警告信息(黄色下划线)
color.Yellow("警告:磁盘空间不足")
// 成功信息(绿色背景)
successColor := color.New(color.FgBlack, color.BgGreen)
successColor.Printf("状态:%s\n", "完成")
// 自定义 RGB 颜色
rgb := color.NewRGB(0, 255, 255) // 青色
rgb.Println("RGB 彩色文本")
}
fmt
标准库:直接支持颜色,无需手动写 ANSI 码。log
:可无缝集成颜色到日志中。github.com/gookit/color
支持更多特性,但 fatih/color
更轻量易用。通过 fatih/color
,开发者可以轻松为终端应用增加可视化效果,提升用户体验。