go语言入门 | 青训营笔记

54 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天,今天初步体验了go语言的开发。实现了几个小功能,熟悉了简单的go语法。

本节课简单的介绍了一下go语言的语法,要点如下

  • go语言的环境配置

使用vscode配置go环境: 先下载go语言环境(官方网站)再在vscode中下载go插件

途中遇到了 需要下载的工具包无法下载的问题,知乎搜索后发现是到国外下载所导致的,切换国内源后就成功了。 说的简单,卡了一个小时。

  • go的变量定义

一般常用 var 变量名 变量类型 = 变量

“ =变量” 和 变量类型 其中一个可以省略 也可以用 变量名 := 变量来自动判断类型

  • if else

与c++类似,不过没有括号,大括号要放在if后面,编译器会帮忙解决的

  • 循环

与c++类似,不过只有for。三个部分都可以省略,根据提前所学的内容,也可以用

    for idx,value := range(字符串或者map类容器){
    }

来进行类似c++的高级for循环定义

  • switch

不需要加case,也可以不加变量,在case后面写表达式当作if else 嵌套使用

  • 数组

与c类似,不过有区别,类似下面

int a[5]

var a [5]int

[5]位置的防止编译器会解决。

  • 切片

类似vector,使用 make([]int,长度) 构造

可以用append追加函数,类似于push_back

也可以用类似python的语法 s[2:] 来打印第二个元素后的所有元素

  • map

是哈希表,语法: map[key]value

  • range

遍历一个容器所用,可以用于高级for

    for idx,value := range mp{
    }
  • 函数

使用语法

    func 函数名(a,b int) 返回值{
    }
    
  • 指针

类似于c,不过只支持取值和取地址,不允许++ , -- 操作

  • 结构体 type 结构体名 struct{ 值 类型 值 类型 }

构造可以像java一样声明 成员: 值

也可以像c++一样全部塞进去,自动按结构体的顺序解析

  • 结构体方法

在函数中 只需要在func后面加一句


func (结构体变量 结构体名) 函数名(传入参数 类型) 返回值{

}

即可

写成大写可以被其他包调用

  • 错误处理

用单独的返回值来传递错误信息

一般使用如下逻辑判断错误并处理

if err != nil {
    业务逻辑
    return
}