go语言基础 | 青训营笔记

84 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记

1. 配置go语言开发环境

以linux为例,先打开golang官网,在install页面下载对于操作系统的安装包,安装文档提示输入以下命令,移除旧版本的golang,将新版本解压到/usr/local目录下

rm -rf /usr/local/go
tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz

添加环境变量,使用vim打开/etc/profile文件,在文件末尾添加下面一行

export PATH=$PATH:/usr/local/go/bin

执行以下命令

source /etc/profile

执行以下命令检查golang是否安装成功

go version

image.png

为golang添加代理,以便更快的下载go包,打开七牛云 - Goproxy.cn,按照提示输入以下命令

export GO111MODULE=on
export GOPROXY=https://goproxy.cn, direct

下载合适的编辑器或者IDE,如VS Code、Goland

2. 基础语法

  1. Hello World
package main

import (
    "fmt"
)

func main() {
    fmt.Println("hello world")
}

main为主包,main函数为程序的入口函数

  1. 变量

显式给定变量类型

var a int = 1

根据初始化的值自动确定类型

var b = "initial"

通过:=定义变量,若函数外有同名变量定义,注意区分该变量是全局变量还是局部变量

f := true
  1. 条件语句

与C语言类似,但条件两侧没有小括号(),以及语句无论是一条还是多条必须使用大括号{}

if actionType == 1 {
    do something...
} else if actionType == 2 {
    do something...
} else {
    do something...
}
  1. 循环语句

只有for循环语句和for-each语句,for循环语句同条件语句不需要()

for i := 0; i < 10; i ++ {
    fmt.Println(i)
}
for _, user := range users {
    do something...
}
  1. 分支语句

与C语言类似,但与C语言不同的一点是,go语言不需要加break来结束分支语句的执行。

switch actionType {
case 1:
    do something...
case 2:
    do something...
default:
    do something...
}
  1. 数组与切片

数组与C语言类似,可以通过index来访问数组元素,切片类似于可变长数组,可指定一个初试容量,在容量不足的时候会自动扩容。同时切片支持append操作,在末尾追加元素。以及支持取其中的某个范围的元素。

var a [5]int
var b [2][3]int
s := make([]string,5)
s[1] = "a"
s = append(s, "b")
fmt.Println(s[:3])
  1. map

一组key-value键值对,支持通过key添加、修改、访问或者删除value的值。

m := make(map[string]int)
m["one"] = 1
r, ok := m["unknow"]
fmt.Println(m["one"])
delete(m, "one")