Go语言的语法标准
- Go 源文件以
go
为扩展名。 - Go 应用程序的执行入口是 main函数,和其它编程语言(比如 iava/c)
- Go 语言严格区分大小写。
- Go 方法由一条条语句构成,每个语句后不需要分号(Go 语言会在每行后自动加分号)
- Go编译器是逐行编译语句,一行就写一句语句,不能把多条语句放在一行
- Go中定义的变量或者import的包没有用到则会编译失败
- Go语言的语法,定义函数的时候,
{
必须和函数名在同一行,不能另起一行。
Go程序的语言结构
|
|
package main
定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包。package main
表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。import "fmt"
告诉 Go 编译器这个程序需要使用fmt
包(的函数,或其他元素),fmt
包实现了格式化 IO(输入/输出)的函数。func main()
是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有init()
函数则会先执行该函数)。fmt.Println(...)
:可以将字符串输出到控制台,并在最后自动增加换行字符 \n
Go的文件组织结构
Go 的包结构和模块结构是 Go 项目组织和模块化的基础
包(Package)
定义:Go 中的 最小代码组织单位。
特点
- 每个 Go 源文件都必须以
package 包名
开头。 - 一个目录中的所有
.go
文件构成一个包(package),只能有一个包名。 - Go 程序的执行入口是
main
包中的main()
函数。 - 包名通常与目录名相同,包路径以 模块名 + 目录名 表示
典型的Go项目文件结构
|
|
导出形式
- 首字母大写的标识符是可导出的(外部可访问),可以被外部包的代码所使用(客户端程序需要先导入这个包)类似于Java中的
public
。 - 首字母小写的标识符只能在本包内使用,则对包外是不可见的,类似于Java中的
protected
。
模块(Module)
Go 1.11+ 引入的新概念,用于管理项目依赖,由 go.mod
文件定义
Go的基本语法
注释
-
行注释
1
//注释内容
-
块注释
1
/*注释内容*/
代码缩进
- 通常使用Tab来解决缩进
- 可以使用
gofmt
命令行命令来自动格式化代码
空格
在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性。
-
Go 语言中变量的声明必须使用空格隔开如
1 2
var x int const Pi float64 = 3.14159265358979323846
-
在运算符和操作数之间要使用空格能让程序更易阅读
1
fruit = apples + oranges;
-
在关键字和表达式之间要使用空格
1 2 3
if x > 0 { // do something }
格式化字符串
Go 语言中使用 fmt.Sprintf
或 fmt.Printf
格式化字符串并赋值给新串:
Sprintf
根据格式化参数生成格式化的字符串并返回该字符串。Printf
根据格式化参数生成格式化的字符串并写入标准输出。