go语言学习分享|青训营笔记

76 阅读3分钟

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

由于之前没有接触过go语言,在刚开始使用的时候也并未进行系统的学习,导致在编写项目时,连基础的功能如何实现都看不懂,更不用说实现功能,导致前期进展缓慢,也遇到了许多问题。

初识golang

golang作为一门新兴的计算机语言,从最基础的语法结构就与我之前接触过的c,python完全不同,也在学习之处感觉十分别扭,但还是要努力克服。

main函数

首先便是main函数的编写,与大多数计算机语言相同,都只有一个main函数,但是golang要简单许多。

image.png

● 第一行代码package main定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

● 下一行import "fmt"告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。

● 下一行func main()是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。

需要注意的是定义函数的时候,‘{’ 必须和函数名在同一行,不能另起一行,没有原因规定如此。

变量声明

golang在声明变量时有四种格式。

第一种,指定变量类型,声明后若不赋值,使用默认值0。

image.png

第二种,根据值自行判定变量类型。

image.png

第三种,省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。

image.png

第四种,多变量声明。

image.png

常量 iota

常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。但是在golang中有一个特殊的常量iota需要记住。

有些时候,有些时候一件事没有本质上的意义。比如,我们在一个数据库表中存储产品,我们可能不想以 string 存储他们的分类。我们不关注这个分类是怎样命名的,此外,该名字在市场上一直在变化,我们仅仅关注它们是怎么彼此区分的。在 golang 中,一个方便的习惯就是使用iota标示符,它简化了常量用于增长数字的定义,给相同的值以准确的分类。

image.png

defer函数

defer语句被用于预定对一个函数的调用。可以把这类被defer语句调用的函数称为延迟函数。

defer作用:

释放占用的资源 捕捉处理异常 输出日志

结果

如果一个函数中有多个defer语句,它们会以LIFO(后进先出)的顺序执行。

总结

本篇主要用来记录刚学习go语言以及在做项目时遇到的一些小知识点,有些小错误需要多加注意。