用户工具

站点工具


go:grammer
  • 语法://注释,package组织包,import导入包,main包为主程序,func main为入口,行末不需要分号
  • slice切片:os.Args命令行参数,len(os.Args)长度,[0,len]不包含len,os.Args[0]命令本身,[1:]参数
  • zero value零值:数值为0,字符串为““,接口或引用(slice map chan func)为nil,下划线_丢弃值
  • short variable declaration短变量声明:i:=1,等价于var i int = 1,多变量初始化var b,f=true,1.0
  • for循环:只有这一种循环,for init;condition;post {},init和post可选,无condition时为无限循环
  • map:make(map[string]int)创建,map[line]++默认取零值,map[string]int{“key”:value}
  • 元组赋值:x,y=y,x交换,x,y=y,x+y斐波那契,x,y=y,x%y最大公约数,f,err=os.Open(“file”)打开文件
  • func init(){ //初始化 },不能被引用或调用,大写字母开头的元素才会导出
  • string:[]rune(“世界”),var runes []rune,slice和数组有区别,for _,r :=range “世界” { runes=append(runes,r) }
  • 组合是go语言面向对象编程的核心
type Point struct { X, Y int}  //大写成员和方法才会自动导出
type Circle struct {
Point  //匿名嵌入可以直接访问叶子属性c.X,相当于c.Point.X
Radius int  //但构建使需要使用完整语法Circle{Point{0,0},5}
}
type Wheel struct {
Circle  //fmt.Printf("%#v\n", w),副词#表示用go语言类似的语法打印,对于结构类型会包含成员名字
Spokes int
}
go/grammer.txt · 最后更改: 2020/11/20 14:54 由 admin