River 的个人后端笔记|青训营:
实践笔记
Go 语言入门指南:基础语法和常用特性解析
字节跳动青训营学习笔记 1
仅作个人学习参考
- 课程结构
- 概要
go 语言的特点
- 高性能
- 类似C语言
- 只有for循环
- 静态编译
- 快速编译
- 交叉编译:编译环境和运行环境不同
- 基础语法
- 关于包:(package)
类似python的dependencies 首先需要引用 main package:
与python不同的是,go语言需要启动函数。在运行一个以go为结尾的文件时,唯一的 main方法,也就是该文件內的代码被执行。
这样的作用,是可以将dependency的关系区分开:同一个main函数下的代码可以调用其他的package,但是其他的package无法调用这个main函数。[1]
- Go 是强类型语言 同样是强类型语言的还有:
python, cpp, Java
强类型语言中,所有的变量需要先定义类型后使用。除了强制性转换以外,定义过的变量,类型将不会发生变化。
-
变量类型:
-
整数类型
分为有符号和无符号(u):
(u)int,(u)int8,(u)int16,(u)int32,(u)int64,(u)intpr,byte,rune
int后的数字代表最大的2的幂
*在不同的编译环境整数类型变量的值可能会变,类似于python的floating point error -
字符串类型
byte,rune,string
go语言支持UTF8编码。
转义字符同样适用。"\n", \r,
一个字母占用一个字节,一个汉字占用三个字节 -
浮点型
与python类似。 保留n小数位: "%.nf" -
布尔型
true false
只有两个相同类型的可以进行比较,不能参与计算和类型转换 [2]
-
-
变量声明方式
var(或const) "变量名" (“变量类型”)= “变量值”
简短变量声明:
变量名 := 变量值 new(变量类型) 无名变量
需要注意的是,使用简短变量声明有可能遇到命名冲突。需要充分理解待操作的变量,正确地使用指针。这点与python不同。
-常用函数/方法
-
for
for 条件 命令 {
循环内容
}
注:go 语言没有while循环 -
switch
给定条件在不同的情况(case)中依次执行直到匹配条件,自己break -
range
相比于python中用于遍历一段数字范围的range函数,go中的range函数功能更加广泛。它能够遍历一个数组或其他数据储存格式中的元素,返回值和索引(或值和键)。 使用方法也很简单:以下是遍历一个小名单。
输出结果:
-
指针
每个占用内存的变量在内存空间中有自己的位置,而指向这个位置的‘路径’或‘地址’就是指针。 通过获取某个变量的指针,我们就能得到它在内存中的位置:
&变量名
指针类型的表示方式:
*变量类型 -
struct(结构体)
类比到python中的class。但是它与class有本质上的不同。结构体可以仅由定义的变量组成而其中不包含任何函数操作,不像python中的class服务于面向对象功能。
Reference
[1] go package 详解
[2] go 语言常见变量类型