GO语言基础语法 | 青训营笔记

139 阅读2分钟

今天跟着Go by example和青训营的视频学习了Go语言的基础语法,对于刚刚学完C++的大一生来说Go语言的语法实在是太奇怪了,不过适应以后也还好。

最别扭的就是go声明变量,数组,切片的方式。 GO语言使用 var 关键字来声明变量,可以指定变量的类型,也可以让编译器自动推断。变量声明后必须被使用,否则会报错。常量使用 const 关键字来声明,不能被修改。GO语言支持多个变量或常量同时声明和赋值,也支持短变量声明(:=),用于在函数内部快速声明并初始化变量。

学习过程中还有的疑惑就是数组和切片不知道有什么区别。 组的长度是固定的,而切片不是。切片可以看成动态的数组,可以通过 append 方法增加元素。切片比数组多一个容量(cap)属性,表示切片的最大长度。当切片的长度超过容量时,会自动扩容。切片是指针类型,数组是值类型。切片在函数中传递的是指针,数组在函数中传递的是值。这意味着切片在函数中被修改时,原切片也会改变,而数组不会。

对Go语言的包导入还不是很习惯,总结了一下包导入方式:

GO语言的源文件以包(package)为单位组织,每个源文件必须声明属于哪个包。包名通常与源文件所在的目录名相同,但也可以不同。导入(import)语句用于引用其他包中的标识符,可以使用点号或别名来简化访问。

import (
    "fmt" // 导入标准库中的 fmt 包
    . "math" // 导入标准库中的 math 包,并使用点号省略包名
    m "mylib" // 导入自定义的 mylib 包,并使用别名 m
)

Go语言没有引用这一概念,取地址就是&,在Go语言中有语法糖可以使得用指针操作就像C++引用访问一样方便