数组和切片组合字面值中下标规则
- 数组和切片组合字面值中的下标必须为整数常量
- 在一个数组或切片组合字面值中,如果一个元素的索引下标缺失,则编译器认为它的索引下标为出现在它之前的元素的索引下标加一
package main
import "fmt"
var x = []int{2: 5, 6, 0: 7}
func main() {
fmt.Println(x) // [7 0 5 6]
}
容器组合字面值中键值或者下标规则
- 一个容器组合字面值中的常量键值(包括索引下标)不可重复
- 此规则可以被用来实现编译时刻断言
const S1 = "Hello world"
const S2 = ""
var _ = map[bool]int{false: 0, len(S1) != 0: 1}
var _ = map[bool]int{false: 0, len(S2) != 0: 1} // 编译报错
[Sp|Fp|P]rintf函数支持位置参数
package main
import "fmt"
func main() {
// 将打印出:coco
fmt.Printf("%[2]v%[1]v%[2]v%[1]v", "o", "c")
}
打印函数中,百分号后面的方括号中的数字,代表的意思为后面的第几个变量,这样可以再多次重复打印变量时可以减少代码内容