环境搭建
环境搭建在Ubuntu20.04,IDE为VSCODE。
-
在golang官网下载对应版本,golang.org/或者golang.google.cn/,名字大概是go1.19.9.linux-amd64.tar
-
直接用xftp拖到服务器中,注意此处解压目标地址。
tar -C /usr/local -xzf gox.x.x.linux-amd64.tar.gz,解压到/usr/local目录下。 -
设置环境变量。
1. `vim /etc/profile` 在最后添加`PATH=$PATH:/usr/local/go/bin` 2. `vim /etc/environment`在最后添加 `:/usr/local/go/bin` 3. `source /etc/profile`重启环境 -
赋予权限
sudo chmod +x /usr/local/go/bin -
修改代理,方便后续vscode安装插件
go env -w GO111MODULE=on go env -w GOPROXY=https://proxy.golang.com.cn,direct -
安装完成,输入
go version查看,运行helloworldpackage main import "fmt" func main(){ fmt.Println("Hello World !") }
基础语法
-
字符串自带+,表示拼接
-
:=用于声明+赋值,而=仅用于赋值。 -
const和var分别表示常量和变量
-
与cpp不同的是, if没有(),必须加{};没有while,dowhile,只有for
for{}来表示while,其他与for相同
- 实际中很少用数组,而是用切片。可变长度的数组,s:=make([]string, 3)
操作有:s = append(s, “d”), s[2:5]取出第2到5个元素,不包括第5个元素
- Map使用: m := make(map[string] int)
m[“one”] = 1,通过delete(m, “one”)来删除kv对
Map是一个完全无序的数据结构,与cpp相同
-
nums:=[]int{2,3,4}表示数组
for i, num := range nums{ 返回两个值,index和number;index:0, number:2 } -
golang中的指针主要用于修改传入的参数
-
结构体用type typename struct{ }来表示,普通函数为func functionname(params){},成员函数为func (structname) functionname(params){}
-
错误处理,在函数返回类型处为
func findUser(params) (u *user, err error) { /* function body*/ if not error: return user, nil else: return nil, errors.New(“Not found”) } -
json操作:保证结构体中每个字母为大写,json.Marshal可以转换为json格式,先转换为string(json)再fmt.printf
-
时间处理:time.Now(), time.Date(自定义时间),t2.sub(t1)对t1,t2两个时间作减法得到时间段
-
字符串和数字之间的转换,在import ''strconv'';strconv.ParseInt/Float等进行转换
-
获取进程信息:os.Args、Getenv、Setenv分别获取或者写入环境变量