color - 让你的输出带点颜色

news2024/11/29 0:47:06

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

其他解决方案

  1. gookit/color

  2. lucasb-eyer/go-colorful

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

任务导向的扩散模型压缩;万物皆可成像;根据舞蹈生成音乐;LLM长上下文对齐;LLM KV缓存量化;通过运动场辅助扩散模型图像编辑

本文首发于公众号:机器感知 任务导向的扩散模型压缩;万物皆可成像;根据舞蹈生成音乐;LLM长上下文对齐;LLM KV缓存量化;通过运动场辅助扩散模型图像编辑 Task-Oriented Diffusion Model Compression As re…

Vmware 无法开启虚拟化解决方法

最近遇到了Vmware无法开启虚拟化的问题,已经解决,记录一下解决经过。 我遇到的情况是BIOS已经开启虚拟化,HV服务也停用了,但是Vmware仍然提示模块“VPMC”启动失败。网上的解决方案千篇一律,基本都是排查BIOS、停用Windows的虚拟化功能、停用HV主机服务、Vmware配置中关闭…

python pandas模块详解

python pandas模块详解 一:pandas简介二:pandas安装以及库的导入2.1 Pandas安装2.2 pandas模块的导入 三:pandas数据结构3.1 pandas Series结构3.1.1创建Series对象1)ndarray(数组)创建Series对象2&#xf…

静态时序分析:时序弧以及其时序敏感(单调性)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 在静态时序分析中,不管是组合逻辑单元(如与门、或门、与非门等)还是时序逻辑(D触发器等)在时序建模时…

Elasticsearch性能调优

背景 项目上是用 ES 做数据库,存储的告警数据,量级在千万级别左右。测试在压测之后,系统频繁出现告警记录查询报错,系统不可用。基于此排查分析项目上 Elasticsearch 的使用是否合理。 版本及硬件 环境:10.xx.xxx.x…

sectigo ip ssl证书有哪些

Sectigo是移交成立时间较久的CA认证机构,几十年来在全球颁发了各种各样的数字证书,例如,单域名SSL证书、多域名SSL证书、通配符SSL证书等域名SSL证书。Sectigo旗下也有一些不常见的数字证书,例如,代码签名证书、IP证书…

浅谈WPF之UniformGrid和ItemsControl

在日常开发中,有些布局非常具有规律性,比如相同的列宽,行高,均匀的排列等,为了简化开发,WPF提供了UniformGrid布局和ItemsControl容器,本文以一个简单的小例子,简述,如何…

ApacheNginx配置ssl证书

一、Apache配置ssl Linux版本:CentOS Linux release 7.9.2009 (Core) Apache版本:Apache/2.4.6 (CentOS) 1、安装Apache(使用默认yum源) [root10-35-1-25 ~]# yum -y install httpd2、查Apache版本&启动Apache [root10-35-…

vue使用富文本

1、安装 cnpm install vue-quill-editor2、在main.js中引入 // 富文本 import VueQuillEditor from vue-quill-editor // require styles 引入样式 import quill/dist/quill.core.css import quill/dist/quill.snow.css import quill/dist/quill.bubble.css Vue.use(VueQuill…

使用orangepi玩linux

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

Autonomous_Exploration_Development_Environment的local_planner学习笔记

1.程序下载网址:https://github.com/HongbiaoZ/autonomous_exploration_development_environment 2.相关参考资料: https://blog.csdn.net/lizjiwei/article/details/124437157 Matlab用采样的离散点做前向模拟三次样条生成路径点-CSDN博客 CMU团队开…

门的方向为何如此重要?探秘产品经理面试题的设计哲学

大家好,我是小米!最近我在面试产品经理的时候遇到了一个有趣而又颇具深意的问题:厕所的门应该朝内还是朝外开?这个问题看似简单,却蕴含了很多关于产品设计的考量。今天,我们一起来深入剖析这个问题,看看我们在设计产品时应该如何权衡各种因素。 背景介绍 在日常生活中…

PyTorch复现网络模型VGG

VGG 原论文地址:https://arxiv.org/abs/1409.1556VGG是Visual Geometry Group(视觉几何组)的缩写,它是一个在计算机视觉领域中非常有影响力的研究团队,主要隶属于牛津大学的工程系和科学系。VGG以其对卷积神经网络&am…

前一百成绩分析

一、实施目的 基于考情,针对目标生制定学习成果“一生一案”方案,帮助目标生消灭短板学科,达到各科均衡发展。 二、实施方法 1、对年级总分科目总分排名前80的学生,制定“一生一案” 2、对标总分名次,设置单科合理区间…

肯尼斯·里科《C和指针》第11章 动态内存分配(1)动态内存分配的基础知识

数组的元素存储于内存中连续的位置上。当一个数组被声明时,它所需要的内存在编译时就被分配。但是,也可以使用动态内存分配在运行时为它分配内存。在本章中,我们将研究这两种技巧的区别,看看什么时候应该使用动态内存分配以及怎样…

【数学】【记忆化搜索 】【动态规划】964. 表示数字的最少运算符

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 数学 记忆化搜索 LeetCoce964表示数字的最少运算符 给定一个正整数 x,我们将会写出一个形如 x (op1) x (op2) x (op3) x … 的表达式,其中每…

【C++】类和对象万字详解

目录 一、类与对象 1、类是什么 二、类和对象的基础知识 2.1 定义类:成员变量和成员函数 2.2 创建对象:实例化一个类的对象。 2.3对象的生命周期:构造函数和析构函数。 a. 构造函数 b. 析构函数 c.小结: 三、成员变量和…

vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.

vue3使用is动态切换组件,activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…

Ansible基础及常用模块

目录 1.前言 Ansible Ansible的特性 2.ansible环境安装部署 管理端安装ansible(192.168.88.22) ansible目录结构 配置主机清单 配置密钥对验证 3.ansible命令行模块 command 模块 shell 模块 ​编辑cron 模块 user 模块 group 模块 copy 模块 file 模块 hostn…

表达式(C语言)

目录 表达式求值 整型提升 ​编辑整型提升的意义 如何进行整体提升? 算术转换 问题表达式解析 表达式1 表达式2 表达式3 表达式4 表达式5 总结 表达式求值 整型提升 C语言中整型算术运算总是至少以缺省整型类型的精度来进行的 为了获得这个精度&#x…