Go语言小细节——内置类型键值或下标规则

数组和切片组合字面值中下标规则

  • 数组和切片组合字面值中的下标必须为整数常量
  • 在一个数组或切片组合字面值中,如果一个元素的索引下标缺失,则编译器认为它的索引下标为出现在它之前的元素的索引下标加一
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")
}

打印函数中,百分号后面的方括号中的数字,代表的意思为后面的第几个变量,这样可以再多次重复打印变量时可以减少代码内容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章