go语言%v go语言%c

Go语言的%d,%p,%v等占位符的使用这些是死知识 , 把常用的记?。怀S玫闹苯硬楸砭托辛?
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf 。
type Human struct {
Name string
}
var people = Human{Name:"zhangsan"}
golang没有 '%u' 点位符,若整数为无符号类型,默认就会被打印成无符号的 。
宽度与精度的控制格式以Unicode码点为单位 。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数 。
操作数的类型为int时,宽度与精度都可用字符 '*' 表示 。
对于 %g/%G 而言,精度为所有数字的总数 , 例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45) 。
%e 和 %f 的默认精度为6
对大多数的数值类型而言,宽度为输出的最小字符数 , 如果必要的话会为已格式化的形式填充空格 。
而以字符串类型 , 精度为输出的最大字符数,如果必要的话会直接截断 。
使用起来很简单,一般配合fmt.Printf()使用,因为fmt的Printf()是有格式的输出,切忌使用Println(),否则将会以字符串的形式输出 。
查看原文: golang fmt格式“占位符”
go语言数组,切片和字典的区别和联系、数组
与其他大多数语言类似go语言%v,Go语言的数组也是一个元素类型相同的定长的序列 。
(1)数组的创建 。
数组有3种创建方式go语言%v:[length]Type 、[N]Type{value1, value2, ... , valueN}、[...]Type{value1, value2, ... , valueN} 如下:
复制代码代码如下:
func test5() {
var iarray1 [5]int32
var iarray2 [5]int32 = [5]int32{1, 2, 3, 4, 5}
iarray3 := [5]int32{1, 2, 3, 4, 5}
iarray4 := [5]int32{6, 7, 8, 9, 10}
iarray5 := [...]int32{11, 12, 13, 14, 15}
iarray6 := [4][4]int32{{1}, {1, 2}, {1, 2, 3}}
fmt.Println(iarray1)
fmt.Println(iarray2)
fmt.Println(iarray3)
fmt.Println(iarray4)
fmt.Println(iarray5)
fmt.Println(iarray6)
}
结果:
[0 0 0 0 0]
[1 2 3 4 5]
[1 2 3 4 5]
[6 7 8 9 10]
[11 12 13 14 15]
[[1 0 0 0] [1 2 0 0] [1 2 3 0] [0 0 0 0]]
go语言%v我们看数组 iarray1go语言%v,只声明,并未赋值,Go语言帮我们自动赋值为0 。再看 iarray2 和 iarray3 ,我们可以看到,Go语言的声明 , 可以表明类型 , 也可以不表明类型,var iarray3 = [5]int32{1, 2, 3, 4, 5} 也是完全没问题的 。
(2)数组的容量和长度是一样的 。cap() 函数和 len() 函数均输出数组的容量(即长度) 。如:
复制代码代码如下:
func test6() {
iarray4 := [5]int32{6, 7, 8, 9, 10}
fmt.Println(len(iarray4))
fmt.Println(cap(iarray4))
}
输出都是5 。
(3)使用:
复制代码代码如下:
func test7() {
iarray7 := [5]string{"aaa", `bb`, "可以啦", "叫我说什么好", "()"}
fmt.Println(iarray7)
for i := range iarray7 {
fmt.Println(iarray7[i])
}
}
二、切片
Go语言中,切片是长度可变、容量固定的相同的元素序列 。Go语言的切片本质是一个数组 。容量固定是因为数组的长度是固定的,切片的容量即隐藏数组的长度 。长度可变指的是在数组长度的范围内可变 。
(1)切片的创建 。
切片的创建有4种方式:
1)make ( []Type ,length, capacity )
2)make ( []Type, length)
3) []Type{}
4) []Type{value1 , value2 , ... , valueN }
从3)、4)可见 , 创建切片跟创建数组唯一的区别在于 Type 前的“ [] ”中是否有数字,为空 , 则代表切片,否则则代表数组 。因为切片是长度可变的 。如下是创建切片的示例:

推荐阅读