一、Var
声明变量的关键字
二、var 与:=
前者一般用与全局变量后者一般用于局部变量;使用:=相当于省去了var type的声明
三、if a>2{
}
四、for 循环
continue继续循环,break跳出循环
五、switch case(可以代替任何的条件语句,case可以用多种类型像字符串甚至结构体等,不加括号)
六、数组 :var a [5]int 数组用的少切边更常用
七、切片是一个可变长度的数组
S:=make([]string,3) 可以用append()追加元素但结果必须赋值回原数组,因为append后一数组扩容返回新的slice
Copy(newarray,oldarray) 将old复制到new
sliceA[2:10] 注意左闭右开,返回第三个到第十个
八、Map 与range
Map
m:=make(map[string]int)
m[“one”]=1
r,ok :=m[“unknow”] //返回的是最后一次出现的值,有则true无则false
delete(m,“one”)
for k,v :=range m{
fmt.println(k,v
}
九、函数
变量类型,返回类型后置
十、指针
十一、 结构体:带类型字段的集合
Type user struct{
Name string
Password string}
A:=user{name:“shui”,password:“1234”}
var d user
d.name=“sfjoi”
fmt.println(A.name,A.password)
十二、结构体方法
Func (u *user) resetpassword(password string){ //使得普通函数变成类成员函数
//带指针能够对结构体进行修改
u.password=password
}
A.resetpassword(“4567”) //与C一样和java的实例化获取类的方法好像不一样额
十三、错误处理
一般用判断语句 if err!=nil{ } nil可以认为是空,不等表示有异常
十四 字符串格式化与常用方法
Fmt.Printf(“s=%v”,s) //注意s可以为字符串、整型、{1,2}
Fmt.printf(“s=%+v”,s) //加上字段名
Fmt.printf(“s=%#v”,s) //加上构造的结构体名
Fmt.printf(“%.2f\n”,f) //将f保存两位小数
Str.Contains(a,“ll”)
Str.Count(a,“l”)
HasPrefix(),join(),len(),tolower ..
十五、json
buf,err=json.Marshal(a) //加判断 ;err=json.Unmarshal(buf,b)//加判断语句;
十六、时间处理
Now:=time.Now()
T:=time.Date(2022,3,27,2,30,30,0,time.UTC)
Diff:=T2.sub(T1) //两个变量的间隔时间
十七、数字解析
F,_=strconv.ParseFloat(“1234”,10,64) //10表示进制,64表示精度
N2,_=strconv.Atoi(“1213”) // 10进制字符串转化为数字
十八、进程信息