Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7841|回复: 0
打印 上一主题 下一主题

Go语言资料-GO语言学习

[复制链接]

338

主题

341

帖子

1719

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1719
跳转到指定楼层
楼主
发表于 2018-3-6 17:11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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定时触发计时器

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|飞克网 ( 皖ICP备16023507号 )

GMT+8, 2024-5-17 06:58 , Processed in 0.186999 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表