飞克网
标题:
Go语言资料-GO语言学习
[打印本页]
作者:
admin
时间:
2018-3-6 17:11
标题:
Go语言资料-GO语言学习
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定时触发计时器
欢迎光临 飞克网 (http://feikechina.com/)
Powered by Discuz! X3.2