这是我参与【第五届青训营】伴学笔记创作活动的第1天
一、什么是Go语言?
1.高性能、高并发
2.语法简单,学习曲线平缓(类似C/C++语言,且仅有for循环)
3.丰富的标准库(不需要使用第三方库、稳定、兼容、迭代)
4.完善的工具链
5.静态链接
6.快速编译
7.跨平台
8.垃圾回收
二、基础语法
1.字符串
字符串属于内置类型,可以用加号直接拼接,比较方法与C/C++类似。
字符串操作:
Strings.contains
Strings.count
Strings.Index
Strings.Join
Strings.Repeat
字符串格式化:
printf("%v/+v/#v/.2f")
2.变量声明与常量声明
变量声明:var 变量名 变量类型
常量声明:const 常量名(无确定类型,会根据上下文自动确定类型)
3.数组
var 变量名 [长度] 类型
4.if-else
if 条件 {} else {}
5.循环for
for 条件 {} 【break,continue用法与C/C++类似】
6.switch语句
switch后可以带变量名也可以不带变量名,不带变量名的需要在case后加条件。
与C/C++用法类似,区别在于,每个case语句后不需要加break跳出。
7.切片
s:=make([]string,3)
可用append追加元素。eg.s=append(s,元素)
可用copy复制元素。eg.c:=make([]string,len(s)) copy(c,s)
s[2:5] 与Python一样,前开后闭
8.map(无序)
m:=make(map[key类型]value类型)
删除。delete(m,key)
查看map是否有key存在。r,ok:=m(key)
9.range
可以对slice,map快速遍历。eg.map: for k,v:=range m
10.函数
func(参数类型 参数名) 函数返回类型 {}
11.指针
对传入参数进行修改 *n(形参) &n(实参)
12.结构体
带类型字段集合 type进行声明
13.错误处理
error.New()
14.Json序列化
import encoding/json 结构体变量名要大写
json.Marshal json.UnMarshal
15.时间处理
import time
解析成时间:time.Date/time.Parse
获取时间戳:now.Unix()
16.数字解析
import strconv
将字符串转换成整型:strconv.ParseInt(字符串,进制,精度)
将字符串转换成浮点型:strconv.ParseFloat(同上)
将字符串转换成数字:strconv.Atoi(字符串)
将数字转换成字符串:strconv.Rtoi(字符串)
17.进程信息
import os;import os/exec
os.Getenv
os.Setenv
os.Args
exec.Command().ComnomedOutPut()【启动子进程并获取其输入输出】