Go语言实现彩色输出示例详解

目录
  • 简介
  • 说明
    • 支持Linux彩色输出
    • 支持Windows彩色输出
    • Golang IDE输出是不支持的
  • 使用
  • CODE DEMO
  • 小结

简介

在逛github时发现一个好玩的Go项目,彩色输出文本

说明

支持Linux彩色输出

支持Windows彩色输出

Golang IDE输出是不支持的

使用

效果图

CODE DEMO

package main
import (
   "fmt"
   "github.com/fatih/color"
)
func main() {
   color.Cyan("蓝绿色.")
   color.Blue("蓝色.")
   color.Red("红色.")
   color.Magenta("品平.")
   color.White("白色.")
   color.Black("黑色.")
   color.Yellow("----------------_----------------")
   color.Yellow("WARNING - WARNING!")
   color.Yellow("WARNING - WARNING.")
   color.Yellow("----------------_----------------")
   //Bold 高亮粗体
   bold := color.New(color.Bold).Add(color.FgGreen)
   bold.Printf("color: %s\n",color.CyanString("heihei"))
   fmt.Printf("color: %s\n",color.GreenString("haha"))
   //BgGreen背影绿色
   //Underline带下划线
   c := color.New(color.BgGreen).Add(color.Underline)
   c.Printf("背景绿色且带下划线的")
   fmt.Println("")
   //自定义提示
   success := color.New(color.Bold, color.FgGreen).PrintlnFunc()
   warning := color.New(color.Bold, color.FgYellow).PrintlnFunc()
   error := color.New(color.Bold, color.FgRed).PrintlnFunc()
   info := color.New(color.Bold, color.FgWhite).PrintlnFunc()
   success("成功")
   warning("警告")
   error("错误")
   info("信息")
   //除了高亮和下划线还有其它几种功能,比如
   Faint := color.New(color.Faint, color.FgHiWhite).PrintlnFunc()
   Italic := color.New(color.Italic, color.FgHiWhite).PrintlnFunc()
   BlinkSlow := color.New(color.BlinkSlow, color.FgHiWhite).PrintlnFunc()
   BlinkRapid := color.New(color.BlinkRapid, color.FgHiWhite).PrintlnFunc()
   ReverseVideo := color.New(color.ReverseVideo, color.FgHiWhite).PrintlnFunc()
   Concealed := color.New(color.Concealed, color.FgHiWhite).PrintlnFunc()
   CrossedOut := color.New(color.CrossedOut, color.FgHiWhite).PrintlnFunc()
   Faint("模糊")
   Italic("斜体")
   BlinkSlow("闪光")
   BlinkRapid("快闪")
   ReverseVideo("反转")
   Concealed("隐藏")
   CrossedOut("删除线")
}

小结

  • 该包共提供了:黑、白、红、绿、蓝、紫、黄、蓝绿共8种颜色,且不支持颜色混合,以最后一参数为准
  • 该包共提供了: 高亮粗体、模糊、斜体、闪光、反转、隐藏、删除线等功能,快闪好像没有测出来
  • 该包封装了fmt.Fprintln方法,可以直接使用c.Println等
func (c *Color) Println(a ...interface{}) (n int, err error) {
   c.Set()
   defer c.unset()
   return fmt.Fprintln(Output, a...)
}

以上就是Go语言实现彩色输出示例详解的详细内容,更多关于Go语言彩色输出的资料请关注我们其它相关文章!

(0)

相关推荐

  • 如何让shell终端和goland控制台输出彩色的文字

    终端输出彩色文字 开发工具:Mac,Goland,Mac自带shell.这是基于Mac的测试结果,根据读者留言,在Windows上不生效,标识符不一样. 在终端输出这段命令,将的到一个红色背景.绿色文字,并不停闪烁的输出. sszxr:~ sszxr$ echo -e "\033[5;32;41mI ♡ You \033[0m" I ♡ You sszxr:~ sszxr$ 双引号中的反斜杠\表示转义,033是标识符,表示用来设置颜色,[表示开始颜色设置,m为颜色设置结束.[后面的5表

  • Go语言开发框架反射机制及常见函数示例详解

    目录 基本介绍 反射中常见函数和概念 reflect.TypeOf(变量名) reflect.ValueOf(变量名) 变量.interface{}和reflect.Value是可以相互转换的 基本使用 反射注意事项 反射的最佳实践 基本介绍 反射可以在运行时动态获取变量的各种信息,比如变量的类型,类别 如果是结构体变量,还可以获取到结构体本身的信息 通过反射,可以修改变量的值,可以调用关联的方法 使用反射,需要import("reflect") 示意图 反射中常见函数和概念 refl

  • Go语言在Linux环境下输出彩色字符的方法

    Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 其中0x1B是标记,[开始定义颜色,1代表高亮,40代表黑色背景,32代表绿色前景,0代表恢复默认颜色.显示效果为: 下面代码遍历全部显示效果. package main import ( "fmt" ) func main

  • java生成彩色附logo二维码

    java生成二维码有很多开发的jar包如zxing是谷歌开发的,这里的话我使用zxing的开发包来实现的.我们在很多项目中需要动态生成二维码,来提供给用户,这样让更多人能够很好的通过二维码来体验自己的应用. 下面贴出代码,已经测试通过,大家可以直接复制代码使用: 最后实现结果: java生成二维码 代码如下: import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.geom

  • Go time包AddDate使用解惑实例详解

    目录 引例 Go Time 包中是这么处理的 源码分析 预期偏差 怎么解决 结语 我们经常会使用 Go time 包 AddDate(),对日期进行计算.而它得到的结果,可能会往往超出我们的“预期”.(为什么预期要打引号,因为我们的预期可能是模糊.偏差的). 引例 假设,今天是10月31日,是10月的最后一天,我们想通过 AddDate()计算下个月的最后一天. today := time.Date(2022, 10, 31, 0, 0, 0, 0, time.Local) nextDay :=

  • Go语言实现彩色输出示例详解

    目录 简介 说明 支持Linux彩色输出 支持Windows彩色输出 Golang IDE输出是不支持的 使用 CODE DEMO 小结 简介 在逛github时发现一个好玩的Go项目,彩色输出文本 说明 支持Linux彩色输出 支持Windows彩色输出 Golang IDE输出是不支持的 使用 效果图 CODE DEMO package main import ( "fmt" "github.com/fatih/color" ) func main() { co

  • Go语言基础模板设计模式示例详解

    目录 概述 模板模式生活案例 策略模式涉及到两个角色 UML 总结 示例 概述 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤 确定了步骤的执行顺序,单某些步骤因环境或人等因素具体实现是未知的 模板模式生活案例 请客吃饭[点菜->吃东西->结账],每个人点菜不一样,吃东西不一样,结账也不一样从某地到某地[起点->出行方式->终点]起点和终点不一一样,但是每个人出行方式是不一样的 Go没有封装.

  • C语言进阶栈帧示例详解教程

    目录 正片开始 栈有什么用? 寄存器 main函数创建 局部变量创建 函数部分 形参与实参 正片开始 今天来讲讲我对栈帧创建与销毁的拙见.理解什么是栈帧首先知道什么是栈: 在数据结构中, 栈是限定仅在表尾进行插入或删除操作的线性表.栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据. 栈有什么用? 在计算机系统中,栈也可以称之为栈内存是一个具有动态内存区域,存储函数内部(包括main函数)的局部变量和方法调用和函数参数值,

  • logback自定义json日志输出示例详解

    目录 前言 依赖的jar maven坐标 配置Appender节点 appender配置说明: 配置logger节点 logger配置说明: 前言 先说下楼主的使用场景吧,将程序的某些方法调用以json格式的内容记录到文件中,提供给大数据做数据分析用.当然这个需求实现起来很简单,通过aop拦截切面统一输出内容到文件即可.下面要介绍的就是通过logback日志体系以及logstash提供的json log依赖将数据以json格式记录到日志文件的例子. 依赖的jar logstash-logback

  • C语言实现队列的示例详解

    目录 前言 一. 什么是队列 二. 使用什么来实现栈 三. 队列的实现 3.1头文件 3.2 函数的实现 四.完整代码 前言 前一段时间,我们试着用C语言实现了数据结构中的顺序表,单链表,双向循环链表,栈.今天我们再用C语言来实现另一种特殊的线性结构:队列 一. 什么是队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头. 这个队列就可

  • C语言实现栈的示例详解

    目录 前言 一. 什么是栈 二. 使用什么来实现栈 三. 栈的实现 3.1 头文件 3.2 函数实现 3.3 完整代码 四. 栈的用处 前言 前一段时间,我们试着用C语言实现了数据结构中的顺序表,单链表,双向循环链表.今天我们再用C语言来实现另一种特殊的线性结构:栈 一. 什么是栈 栈(stack)又名堆栈,它是一种运算受限的线性表.限定仅在表尾进行插入和删除操作的线性表.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈顶元素的上面,使之成

  • C语言实现阶乘的示例详解

    目录 前言 1.阶乘实现 1.1理论步骤 1.2实践结果 2.连续乘层相加实现 2.1理论步骤 2.2实践结果 前言 在现实中,我们做数学题总会遇到阶乘问题,这在计算机中也不例外. 那我们应该怎么实现呢? 我记得很多老师在电脑上书写阶乘都是用!这个符号表示. 比如5的阶乘,写为5!. 这在C语言中是行不通的,下面我讲解C语言中阶乘的实现. 1.阶乘实现 1.1理论步骤 我们可以利用while.do……while.以及for等循环实现,实现功能如下: 我们先设置好3个变量,i.n(想要的阶层数).

  • Go语言数据结构之插入排序示例详解

    目录 插入排序 动画演示 Go 代码实现 总结 插入排序 插入排序,英文名(insertion sort)是一种简单且有效的比较排序算法. 思想: 在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置.重复该过程,直到所有输入元素都被选择一次,排序结束. 插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里:抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边. 因此,对所有的牌重复这样的操作,所以每一次都是插

  • go语言编程实现递归函数示例详解

    目录 前言 函数中的 return 递归的问题 总结 前言 本篇文章主要是记录一下在 GScript 中实现递归调用时所遇到的坑,类似的问题在中文互联网上我几乎没有找到相关的内容,所以还是很有必要记录一下. 在开始之前还是简单介绍下本次更新的 GScript v0.0.9 所包含的内容: 支持可变参数 优化 append 函数语义 优化编译错误信息 最后一个就是支持递归调用 先看第一个可变参数: //formats according to a format specifier and writ

  • go语言的变量定义示例详解

    目录 前言 定义单个变量 定义多个变量 定义相同类型的多个变量 变量的初始化 变量类型的省略 var关键字的省略(简短声明) 全局变量与局部变量 特别的变量名 未使用变量的限制 常量 前言 特别说明: 本文只适合新手学习 这篇文章带我们入门go语言的定义变量的方式,其实和javascript很相似,所以特意总结在此. 在go语言中,也有变量和常量两种,首先我们来看变量的定义,定义变量我们分为定义单个变量和多个变量. 本文知识点总结如下图所示: 定义单个变量 在定义单个变量中,我们通过var关键字

随机推荐