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() // 函数结束的时候 Unsetfmt.Println("All text will now be bold magenta.")

禁用颜色

color.NoColor = true

其他解决方案

  1. gookit/color

  2. lucasb-eyer/go-colorful

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/444155.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用orangepi玩linux

最近看了这个大佬的文章,写了使用远程来挂载linux的方案,觉得还是很有意思的,瞬间感觉linux这块都还是相通的,就跑了一下,果然,牛逼! 香橙派全志H3烧录Uboot,远程加载zImage&#xf…

羊奶指南又跟新了,又有新发现

羊奶指南又跟新了,又有新发现 羊奶源远流长,早在古代我们祖先就意识到了它的药用价值。在《本草纲目》一书中,药圣李时珍明确指出了羊奶的珍贵之处,为后人留下了宝贵的知识。本文将以科学的角度详细解读羊奶的药用价值&#xff0…

分享个前端工具-取色调色工具

这里虽然贴了两个,但推荐 Pipette. PipetteWin22.10.22.zip: https://download.csdn.net/download/rainyspring4540/88799632 图标: 界面: ColorPix https://download.csdn.net/download/rainyspring4540/88799642 图标: 界面…

HBase介绍

一、HBase简介 1.1、HBase是什么 Google在200-2006发表了GFS、MapReduce、BigTable三篇 论文 ,号称“三驾马车”,开启了大数据的时代。 GFS是Google File System,开源实现是HDFS(Hadoop File System)。 MapReduce…

LeetCode 828. 统计子串中的唯一字符

一开始想的是两次前缀和,发现自己蠢了 看了灵神的题解,类似于DP的思想 我们维护以每个字符串结尾的子字符串对答案的贡献,s[i]的贡献是多少?首先我们知道他需要自己单独一个串或者接在以s[i-1]结尾的那些字符串的后面&#xff0c…

乐鑫与 Elektor 杂志合作推出特刊,聚焦 AIoT 创新

在新一年的起始之际,我们很荣幸地与 Elektor 合作推出由乐鑫领衔编辑的杂志特刊。欢迎点此阅读电子版本。 Elektor 杂志作为国际电子工程和科技创新的重要平台,自 20 世纪 60 年代起,就引领着电子制造的发展潮流。如今,它已经发展…

C# .Net Framework Swagger

1.安装 Swagger 在NuGet程序包中安装以下文件 Swashbuckle: Swagger: Swagger.Net: 2.在项目APP_Start 文件夹下面找到 SwaggerNet.cs文件 1.注释掉这两行代码 2.将PreStart方法的内容修改为以下 public static void PreStart() {RouteTable.Routes.MapHttpRoute(…

Sentinel 知识总结

Sentinel 知识总结 Sentinel 是阿里巴巴开源的一个轻量级流量控制框架,主要用于保护系统稳定性和流畅性。它提供了多种流量控制策略,包括QPS限流、并发数限流、线程池限流等,并且支持集群限流。此外,Sentinel还提供了熔断降级、系…

实战Vue.js与MySQL:爱心商城项目开发指南

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

使用“快速开始”将数据传输到新的 iPhone 或 iPad

使用“快速开始”将数据传输到新的 iPhone 或 iPad 使用 iPhone 或 iPad 自动设置你的新 iOS 设备。 使用“快速开始”的过程会同时占用两台设备,因此请务必选择在几分钟内都不需要使用当前设备的时候进行设置。 确保你当前的设备已连接到无线局域网,并…

二、人工智能之提示工程(Prompt Engineering)

黑8说 岁月如流水匆匆过,哭一哭笑一笑不用说。 黑8自那次和主任谈话后,对这个“妖怪”继续研究,开始学习OpenAI API!关注到了提示工程(Prompt Engineering)的重要性,它包括明确的角色定义、自然语言理解(…

Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)

文章目录 Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)Vue之事件总线(Event Bus)的简单使用Vuex进行状态管理的简单使用若依前端代码store状态管理: Vue之状态…