BYTECODES

Go基础备忘

变量

变量可以定义在package level

var (
    username string = "zhangsan"
    age int = 18
)

这种定义方式让代码更简洁。如果变量在package level,同时变量名大写,那就全局可见。

go中有复数类型complex64以及complex128,比如:

package main
import "fmt"

func main() {
	var n complex64 = 1 + 2i
	fmt.Printf("%v, %v\n", real(n), imag(n))
}

  • rune类型:是int32的别名

  • iota: iota不是什么类型,它是常量计数器, 每次const出现时,都会让iota初始化为0.

const a = iota // a=0
const (
	b = iota //b=0
	c        //c=1   相当于c=iota
)

数组与slice

他们形式上很像,只是数组要明确定义大小

arr := [...]int{1,2,3}
s := []int{1,2,3,4,5}

spread运算符

类似javascript里面的spread,可以展开数组

s := make([]int, 5) // 另一种创建slice方式
s = append(s, []int{1,2,3}...) 

并发

waitGroup等待线程结束,类似Java里面的Latch和栅栏