中文官网地址:Go语言中文网
官方文档地址:Go中文文档 (要学会查官方文档 ~ )
1. 基础语法
1.1 固定节目:编写"Hello, World!"程序
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
1.2 基本概念
Go应用使用包(package) 和 模块(module) 组织代码。
包(package) : 每个 Go 源代码文件都必须属于一个包(对应到文件系统就是文件夹)。包有助于将代码分成逻辑模块,提高可维护性和可重用性。
通过 import关键字,可以在一个包中引入其他包,使用其中的函数、变量等。
main 包是一个特殊的包,它定义了独立执行的入口点。标准库中还有很多包,诸如 fmt 用于格式化输入输出(上面的代码中就利用了 fmt 中的 Println() 函数,用于打印输出语句), net/http 用于处理 HTTP 请求等。
模块(module) : 模块就是 .go 的源文件,一个包中会含有多个模块或子包。
依赖(Dependency) : 依赖是指我们的项目或代码所依赖的外部包或模块。
1.3 创建项目步骤
创建文件夹 → 打开cmd终端:code . → 在VS Code终端:go init mod + <module_name>
就可以创建 .go 文件开始写代码啦 ~
1.4 命名规范
任何需要对外暴露的名字必须以大写字母开头,否则以小写字母开头。
当一个常量、变量、类型、函数名、结构字段等以大写字母开头,则其可通过导入被外部包的代码所使用(称为“导出”,类似于public),否则对外部包不可见,只能在包内使用(类似于private)。
包:应保持名称和目录一致,尽量为小写单词,不要使用 _ 或混合大小写。
文件:小写,以 _ 分割各个单词。
结构体:驼峰命名法。
接口:驼峰命名法,单个函数的结构名以er作为后缀如Writer、Reader。
变量:驼峰命名法,首字母小写,若为bool类型,则以 Has 、 Can 、 Is 或 Allow 开头。
常量:全部大写,使用下划线分割单词。
单元测试:example_test.go 。测试用例的函数名要以 Test 开头,如TestExampl。
1.5 变量的声明和初始化
⚠️Go语言中一旦声明必须使用,否则报错
1. 声明变量关键字 + 变量名称 + 类型
var 是用于声明变量的关键字。使用 var 关键字可以在代码中定义一个变量并为其分配空间,以便在程序运行时存储和操作数据。
var number int
3. 初始化多个变量
var (
name string = "李四"
age int = 22
flag bool
)
注意这里括号是圆括号 (...) ,而非花括号 {...}
4. 类型推断
Go语言可根据初始化值的类型自动推断出变量的类型:
var name = "李四"
var age = 22
5. 函数内部可直接通过 := 对变量进行声明和初始化
func GetInfo()(string, int) {
name := "李四"
age := 22
return name, age
}
5. 匿名变量
暂时用不上的变量,可以用 _ 表示变量名称:
func getNameAndAgereturn() (string, int)
{
return "李四", 22
}
func main() {
name, _ := getNameAndAgereturn()
}
1.6 常量
使用关键字 const 来定义常量。常量是在编译时就确定的值,在声明时必须进行初始化,且一旦初始化后就不能再次修改其值。常量的数值可以是表达式,但这些表达式必须在编译时就能够计算出结果。
const PI = 3.14159
const (
APPNAME = "ShortVideoPlatform"
VERSION = "1.0"
)
注意这里括号是圆括号 (...) ,而非花括号 {...}
小结
青训营的课程讲得比较快,很多地方都是一句带过,所以我又找了官方文档和其他课程作为补充,深感Go语言的简洁、高效和灵活,像是结尾不用写分号、仅仅是变量的声明就有这么多的类型,能大大方便我们的开发,但也正是因为它的简洁和灵活,初学时很容易出错,像是变量的声明和初始化,最开始还是建议选择其中的2-3种方法进行练习和记忆,并且要明白它们所适用的情景,需要一定时间去适应。
— — 笔记内容仅供参考,如有错误欢迎指出 — —