一、基本语法
标识符命名规范
Go 是区分大小写的,标识符的命名包含了 Go 中变量、常量、函数、结构体、接口以及方法的命令,Go 限定任何需要对外暴露的标识符必须以大写字母开头,不需要对外暴露的标识符则需要以小写字母开头。
标识符以大写开头,就表示可以被外部包的代码引用,称之为导出。如果以小写字母开头,那么对外就是不可见的,但是在整个包的内部是可见且可用的。
标识符的命名应该避免与 Go 中内置的关键字冲突。
变量的命令规范
采用驼峰命名法,首字母根据访问控制大写或者小写
常量的命名规范
常量的名称全部使用大写字母组成,并且使用下划线来分隔多个词
枚举类型的常量
结构体的命名规范
结构体也是采用驼峰命名法,首字母的大小写根据访问控制决定
接口命名规范
接口的命名规范与结构体的命名规范基本一致,只有一个方法的接口命名以 "er" 结尾,如 Fighter
文件和包的命名规范
Go 文件和包的命名有小写字母组成,简短、有意义。注意 包的命名不要使用下划线或者驼峰命名。
Go 中的常用关键字
关键字 | 说明 |
---|---|
var | 定义变量 |
const | 定义常量 |
package | 包 |
import | 导入包关键字 |
func | 定义函数关键字 |
return | 用于修饰函数中返回值 |
interface | 定义接口 |
struct | 定义抽象数据类型 |
type | 声明自定义类型 |
map | 声明 map 数据类型 |
range | 用于遍历 |
if、else、for、switch、break、case、continue、fallthrough、soto、default | 用于流程控制 |
Go 中的注释
///* 多行代码 */
变量的定义与使用
var
使用 var 关键字定义变量
一次声明多个相同类型的变量
一次声明多个不同类型的变量
使用 := 自定判断变量类型定义变量
var
在 go-quickstart 项目下新建一个文件夹,命名为 ”01-基本语法“,在该文件夹下新建 Go 文件 ex1.go
执行上述代码,输出结果如下:
name 变量的值为: tony
name、address、phone 三个变量的值分别为: Tony NY 010-111222
user_name, user_age, user_balance 三个变量的值分别为: tony 40 1e+06
user_id 变量的值为: 1000
:=
定义常量
const
执行上述代码,输出结果如下:
常量 URL 的值为: https://juejin.cn
HOST 和 APP 两个常量的值为: 3306 /go
NUM,COUNT,QUANTITY 的值分别为: 100 100 100
二、常用函数
main 函数与 init 函数
main 函数
funcmain
init 函数
Go 中 init 函数负责 package 的初始化,init 函数:
- 在 main 函数前执行,自动被调用,初始化 package 中的变量等
- init 函数不能被其他函数调用
- 每个包可以有多个 init 函数,同一个包的 init 函数执行顺序与 init 函数定义的位置有关
- 包中每个源文件也可以又有多个init 函数
- 不同包中的 init 函数按照导入的依赖关系决定 init 函数的执行顺序
- init 函数没有返回值
执行上述代码,输出记过如下:
这是第一个 init 函数
这是第二个 init 函数
这是第三个 init 函数
这是 main 函数
调用第一个和第三个 init 函数的位置,再次执行改代码
这是第三个 init 函数
这是第一个 init 函数
这是第二个 init 函数
这是 main 函数
同一个文件中 init 函数执行的顺序与位置有关,但是都会先于 main 函数执行。
init 函数 VS main 函数
main 函数和 init 函数定义时都不能有任何返回值,且都是有 Go 自动调用的。
main 函数只能定义一个,init 函数可以定义多个。
这两个函数官方只能定义在测试环境中使用,生产环境不推荐使用。
fmt 包及其函数
上述代码中除了 main 函数还涉及到了打印相关的函数,这些函数都在 fmt 包下,共有三个输出函数
- Println:自动换行,且一次输出多个值时,多个值中间会带有空格
- Print:不自动换行,多个值连续输出,没有空格
- Printf:格式化输出
执行上述代码,输出结果如下:
自动换行,多个值之间会有空格 tony1 tony2 tony3
不自动换行,多个值之间会有空格tony1tony2tony3
tony1, tony2, tony3 格式化输出
%v