如何在Go中为控制台/终端输出添加颜色

许多关于 bash 的文章都建议使用看起来像\e[39m漂亮颜色的东西,虽然这些在 bash 中工作得很好,但对于 Go 来说却是另一回事——字符串只是按原样呈现。然而,有一些库可以让您为输出着色,但是代码太臃肿了,您甚至无法找到要解决的问题的答案。

毕竟,并不是每个人都想仅仅为了颜色而导入一个库。

11《Go语言入门》数组和切片

本文内容较多,请泡个茶,做好准备!

重要知识点:

  • Go中没有foreach关键字,但是range 关键字可用于for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。
  • _ 表示占位,用于替代不使用的变量。
  • 数据截取返回的是切片。
  • 切片是一个共享存储结构,是引用类型。
  • slice的len大于cap时,会出发扩容。slice的cap增长是当len在1024之前是双倍增长的,而1024以后则是先增长25%以后再调整这个值为系统需要的最小值,因此这个值是约等于cap + cap/4。

10《Go语言入门》循环和条件

重要知识点:

  • Go仅支持循环关键字for,没有while循环关键字。
  • 条件表达式的结果必须为布尔值。
  • switch条件表达式不仅支持常量和整数,而且和JS一样支持字符串。
  • switch不需要break来明确退出一个case。
  • 不设定switch后的条件表达式,能实现if else的效果。
  • 不支持三目(元)运算符。

09《Go语言入门》运算符和其他编程语言的区别

重要知识点:

  • 很多人分不清前置自增和后置自增、前置自减和后置自减,而Go为了简单,只支持后置自增(a++)和后置自减(a–)。
  • Go中数组(Array)为值类型,相同维数且含有相同个数元素的数组才可以比较,每个元素都相同才相等。
  • 位运算符增加按位置零运算符 &^ ,规则:右1为0,右0为O(Original)。

08《Go语言入门》数据类型、类型转换、指针类型

重要知识点:

  • 整形int和uint的位数由操作系统位数决定,如64位操作系统,则int为有符号64位。
  • uintptr为无符号整型,用于存放一个指针。
  • 不允许隐式类型转换,即使别名和原有类型也不能进行隐式类型转换。
  • Go有指针,但是不支持指针运算,即不能通过指针自增来访问连续的存储空间,如数组。
  • string是值类型,其默认的初始化值为空字符串,而不是null。

07《Go语言入门》测试用例、变量和常量

从这篇文章开始,为了方便测试代码,我将基本上所有示例代码都写成了测试用例,因此需要先学下测试用例怎么编写,这真的很重要,这是任何工程的开始必做的步骤。
然后讲解了单个或多个变量和常量的定义,常量的讲解包括枚举、常量表达式、iota常量、比特位常量等。

重要知识点:

  • 全局变量声明后不使用,程序能够编译成功;而局部变量不可以,声明后必须得使用。
  • 变量短声明方式只能在函数内使用,函数外使用会报错 unexpected
  • 常量不管全局还是局部,声明后可以不使用。