go day1

71 阅读1分钟

字节青训营

Go语言基础

  • 如果导包未用会报错,局部声明未用也报错,全局变量是允许声明但不使用

变量和常量

声明变量

var name type = value / name := type(value)
var (
a int
b int
c bool
)
var a,b,c int 
//当声明一个变量的时候,都会自动初始化为零值,指针为nil ,布尔为false
//省略类型,go会自动推断
var a = 15
//简短的声明,不能用在全局变量的声明
a := 1//go 交换值
a,b = b,a
//空白运算符,可用于抛弃值,是一个只写变量
_ , a = 5,7
//并行赋值用作多个返回值,并行:右边的值以相同顺序赋值给左边
a,b = func()

go 类型

int int8 int16 int32 int64 uint16 ......

go 没有float类型,只有float32/float64

go的隐式转换非常严格,int16也不能转为int32,但是对常量的限制非常小,常量之间倒是可以混合赋值

复数类型:Complex64,Complex128 -- 实部虚部各占一半

var a Complex = 1+3i

运算符: 9/4=2 取余: 9%4 = 1,i++只能作为语句,n=i++不允许

类型别名; type intttt int

字节型: byte == uint8, a:=65,a := '\x42' a := '\123'

格式化说明符 %d格式化整数,%g格式化浮点型,%f 浮点数,%e 科学计数法这些都是fmt.Printf()使用的

值类型和引用类型

int float bool 和数组和结构都是值类型,而指针,slices ,maps,channel都为引用类型

init函数

  • 无法调用,优先级比main还高,自动执行

go mod

go mod init name
​