[ 走进Go语言基础语法 | 青训营笔记 ]

35 阅读2分钟

高并发,编译速度快,跨平台,有垃圾回收。

基础语法

变量 分类 声明方式1.var a=value 2.变量名:=float32(e) 常量前加const

if 条件 {} 条件无小括号 if后必须是大括号

for{} 死循环 for j:=7;j<9;j++{ continue/break }

switch 条件 {case 1:} 不同没有break不会继续执行而是执行default switch{ case 条件: }

数组 var a [5]int 不可变长度

切片 可变长度 s:=make([]string,3) s.append(s,"a")追加元素 copy(c,s) 将切片s拷贝到c

map 无序 插入随机 m:=make(map[stirng]int) k和value m["key值"]=value值 delete(map,key)删除键值对 r, ok :=m["键值"] 获取map中是否有这个key值

range 快速遍历 for i,num:=range nums{} nums是数组 range返回两个值 第一个值为索引 第二个值为对应位置的值 nums是map的化 返回1.key 2.value

函数 后置型 func 函数名( a * int) 返回值{ return } 返回值可以是两个值 (v1 int,v2 int)

指针 差不多一样

结构体 type 结构体名 struct{name stirng password string} a:=user{name:"chenzhen",password:"1024"} 结构体方法 我们也可以这样调用函数 func (u user) checkPassword)(password stirng){return u.password==password} a.resetPassword("2048")这样调用上面的函数将a传给u

错误处理 import{"errors"} 返回值(,err error) 返回一个错误

字符串操作和格式化

JSON处理 保证字符串首字符的大写 就可以用json.Marshal()序列化 打印需要转换为stirng()类型才可正常打印

时间处理 now:=time.Now() t:=time.Date(2022,3,27,1,25,36,0,time.UTC) fmt.Println(t.Year()/Month(),--) t3,err:=time.Parse("2006-01-02 15:04:05","2006-01-02 15:04:05")解析时间 now.Unix()系统交互时用到来获得时间戳

数字解析 f, _:=strconv.ParseFloat("1,234",64) f//1.234 如果输入不合法就会告诉你数字不合法 如("AAA")

获取进程信息 fmt.Println(os.Args)来获取进程命令行参数 os.Getenv("PATH")获取环境变量 os.Setenc("AA","BB")写入环境变量