昨天的笔记写到了字符串的操作,列举了许多的例子。今天接着上篇笔记的内容,继续对字符串的操作进行回顾与巩固。在字符串操作后,主要是对字符串格式化的内容。
在Go语言中,主要是用
fmt.sprintf或是
fmt.printf对字符串进行格式化操作并赋值给新字符串。在青训营课程中,主要讲解的是
fmt.printf的部分,所以本篇笔记也只侧重于printf。Printf根据格式化参数生成格式化的字符串并写入标准输出。printf的格式化是用“%”来完成的。“%s”是字符串样式,“%d”则是十进制的整数形式等等。在格式化操作时,使用“,”进行分隔。下面是一个代码示例:
var age=23 var name="xiaoming" var c="%s‘s age=&d" fmt.printf(c,name,age)
输出的结果为“xiaoming’s age=23”
Go语言中的字符串格式化操作不只上面提到的两种,还有在课程中出现频率很高的”%v“。”%v“代表按值的本来值输出,也有“%+v”和“%#v”两个与“%v”相类似的操作。“%+v”是在“%v”的基础上对结构体字段名和值进行展开,而“%#v”则是输出Go语言语法格式的值。这两个字符串操作可能有点难懂,这里借用青训营课程中的例子进行解释: `type point struct{ x,y int }
func main(){ a :=point{1,2} fmt.printf(“p=%+v\n”,a) fmt.printf(“p=%#v\n”,a) }` 这里补充一点,“\n”是指换行。这边的第一个输出是“p={x:1 y:2}”,而第二个则输出的更加详细:“p=main.point{x:1,y:2}”。
上面也提到了%d是整数,而对浮点数也有对应的操作。“%f”就是对浮点数格式化的,也可以做到保留几位小数的操作,其保留方法也和其他编程语言相似。例如要保留两位小数,“%.2f”就能实现。
最后再补充一点其他字符串格式化的操作。例如“%b”是以二进制方式显示,“%x”是以十六进制方式显示,而“%X”则是用十六进制方式显示且为大写。而要输出“%”不作格式化操作,只需在前面加一个“%”即可,“%%”就能实现输出百分号。