| 
 | 
 
https://go-zh.org/开发文档 
1、go文件的变量名首字母大写可调用,小写不可调用(私有的) 
 
2、包的别名,在包名前加个变量值 
 
3、每个包有个初始化方法init函数,可直接调用  
包名前加个下划线“_” ,只初始化不引用 
  
4、布尔型:bool ------  true,false 
整形:int/uint ----------int,int8,int16,int32(rune),int64,float32,float64 
int8/uint8(byte)取值范围:-128~127/0~255 
复数:complex64/complex128 
保存指针的整数:uintptr 
其他值类型:array  struct string 
引用类型:slice map chan 
接口类型:inteface 
函数类型:func 
 
 
5、变量的声明和赋值 
(1)、var a int 
(2)、var a,b = 3,4 
(3)、a,b :=2,3 不能用于常量的声明和赋值 
 
 
6、多个变量的全局变量声明 
var ( 
   a = 10 
   b = "SEING" 
) 
 
7、常量标识符const,不可以修改 
const a string = "abc" 
 
8、iota,特殊常量,可以被编译器修改的常量 
 
 
defer 延迟 
 
 
 
9、if/else流程控制语句 
 
 
10、switch 
switch var1{ 
    case var1: 
          ..... 
    fallthrough     //想要执行下面的语句 
 
    case var1: 
          ..... 
    default: 
 
 
} 
 
 
11、for循环 
for循环不需要括号;for的条件里可以省略初始条件,结束条件,递增条件。 
 
12、函数声明语法: 
func add(){} 
func add(a int,b int){} 
func add(a int,b int)int{} 
func add(a int,b int)(int,int){} 
func add(a,b int)(int,int){} 
  
13、指针&,引用* 
 
14、数组定义:var id [50]int 
  
15、二维数组:var a[3][4]int 
  
16、随机种子:rand.Seed(666)、 
 rand.Seen(time.Now().UnixNano())以当前时间做随机种子、产生随机数----rand.Intn(100) 
 
 
17、slice 切片第一个参数:地址指针,第二个参数:长度,第三个参数:容量 
arr :=[...]int{0,1,2,3,4,5,6,7} 
s := arr[2:6]  //左包括右不包括2,3,4,5 
提示:修改切片的值,相应的也修改了底层数组的值 
s = append(s,1)添加切片元素 
make()//初始化切片 
copy()//拷贝切片 
  
18、Map的声明 
var m1 map[int]string 
判断Map的KEY是否存在value,ok:=m1[1]  if ok==true{} 
删除Map的Key delete(m1,1) 
  
19、结构体type aa struct{} 
 
 
20、包的可见性,调用函数或者方法,首字母大写 
 
 
21、面向对象编程 
type long string  //定义一个类型 
func (temp long) add(a long)long{} 
  
22、接口 
type Hum interface{} 
实现接口里的方法,必须要是指针 
 
23、异常处理error接口的创建 
第一种方法: 
err1 := fmt.Errorf("%s","姓名不正确") 
第二种方法 
err2 := errors.New("姓名不正确") 
 
 
24、panic 出现异常,中断程序 
func panic(v interface{}) 
 
 
25、recover 它可以在当前的程序从运行时panic的状态中恢复并重新获得流程控制 
func recover() interface{} 
  
26、正则表达式 
regexp标准包 
stringd := "aababcacdbccdaca2c" 
rega := regexp.MustCompile(“a.c”) 
result := rega.FindAllStringSubmatch(stringd, -1) 
  
27、并发 
go abc() //使用方式 
runtime.Gosched() //主程序让出时间片,给子协程执行 
runtime.Goexit()    //终止所在协程 
runtime.GOMAXPROCS(2) //使用CPU个数,并发速度 
time.Sleep(time.Second)//时间片休眠 
  
28、channel 类型 
创建var ch = make(chan int) 
接收和发送数据 
channel <- value 
<-channel 
x:=<-channel 
x,ok :=<-channel 
  
close(ch) //关闭通道 
  
out  ch<- int //只能写入管道 
in   <-ch int //只能读管道 
  
29、定时器timer 
  
30、Ticker定时触发计时器 
 
 |   
 
 
 
 |