当前位置: 首页 > article >正文

6-自定义fprint函数 --github_com_fatih_color测试

1.先读README.md文件

blue := color.New(color.FgBlue).FprintfFunc()
blue(myWriter, "important notice: %s", stars)

// Mix up with multiple attributes
success := color.New(color.Bold, color.FgGreen).FprintlnFunc()
success(myWriter, "Don't forget this...")

在这里插入图片描述

2.实例测试

package main

import (
	"github.com/fatih/color"
)

func main() {
	myWriter := color.Output
	blue := color.New(color.FgBlue).FprintfFunc()
	blue(myWriter, "important notice: %s", "通知内容")

	// Mix up with multiple attributes
	success := color.New(color.Bold, color.FgGreen).FprintlnFunc()
	success(myWriter, "Don't forget this...")
}

在这里插入图片描述

3.代码解读

a.main函数代码开始解读

// 这段Go代码的主要功能是使用color包来输出带有颜色的文本。具体步骤如下:

1. 定义一个myWriter变量,用于指定输出目标。
2. 使用color.New创建一个蓝色文本的格式化函数blue,并通过FprintfFunc方法将其转换为Printf风格的函数。
3. 调用blue函数,输出带有蓝色的“重要通知”。
4. 创建一个带有粗体和绿色的格式化函数success,并通过FprintlnFunc方法将其转换为Println风格的函数。
5. 调用success函数,输出带有绿色粗体的“不要忘记这个...”。

// 按住ctrl键,点击 FprintfFunc 函数代码

在这里插入图片描述

b.查看函数 FprintfFunc

// 这段Go代码定义了一个方法 FprintfFunc,该方法属于 Color 结构体。
1. FprintfFunc 返回一个函数,这个函数接受一个 io.Writer 类型的参数 w、一个格式化字符串 format 和一个可变数量的参数 a。
2. 当调用返回的函数时,它会调用 Color 结构体的 Fprintf 方法,将 w、format 和 a 作为参数传递。

// 在这里,FprintfFunc 方法返回一个匿名的打印函数。

在这里插入图片描述

c.查看函数 FprintlnFunc

// 这段Go代码定义了一个方法 FprintlnFunc,该方法属于 Color 结构体。
FprintlnFunc 返回一个函数,这个函数接受一个 io.Writer 类型的参数 w 和一个变长参数 a,并调用 Color 结构体的 Fprintln 方法,将 w 和 a 作为参数传递给它。

// 这样,main函数里的success就成为一个函数了。

在这里插入图片描述


http://www.kler.cn/a/408547.html

相关文章:

  • 4.4 MySQL 触发器(Trigger)
  • 【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
  • linux-进程间通信
  • 【layui】table的switch、edit修改
  • leetcode top100中的30道简单和中等难度的题
  • NFS搭建
  • 【初阶数据结构与算法】线性表之队列的定义与实现
  • HarmonyOS:使用ArkWeb构建页面
  • 手搓《unordered_map unordered_set》
  • 《第十部分》1.STM32之通信接口《精讲》之IIC通信---介绍
  • 用 BlockingQueue 打造轻量级消息队列服务:从原理到实现
  • [Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
  • 本地推流,服务器拉流全流程
  • SCP文件传输命令解析
  • C++:用红黑树封装map与set-1
  • 前端:JavaScript (学习笔记)【2】
  • 每日计划-1124
  • 嵌入式Linux——文件类型
  • 【jvm】java对象的访问定位
  • MATLAB的语音信号采集与处理分析
  • Puppeteer 和 Cheerio 在 Node.js 中的应用
  • React学习06- API扩展
  • 如何理解tensor中张量的维度
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)
  • 亚太杯数学建模C题思路与算法(2024)
  • 手机文件可以打印出来吗