Go 基本语法
Go - 基本语法
Section titled “Go - 基本语法”本章介绍 Go 程序的基本组成部分。
Go 中的词法单元 (Tokens)
Section titled “Go 中的词法单元 (Tokens)”Go 程序由词法单元(Tokens)组成。词法单元可以是关键字、标识符、常量、字符串字面量或符号。考虑以下 Go 语句:
package main
import "fmt"
func main() { fmt.Println("Hello, World!")}这个程序使用了几个词法单元:
Keywords: package, import, funcIdentifiers: main, fmt, PrintlnString Literal: "Hello, World!"Symbols: ., (, )分号和行结束符
Section titled “分号和行结束符”在 Go 中,换行符通常充当语句终止符。与 C 或 Java 等语言不同,你通常不需要在每个语句末尾放置分号(;)。Go 编译器会根据词法规则自动插入分号。
例如,这是两个独立的语句:
fmt.Println("Hello, World!")fmt.Println("Learning Go syntax!")但是,如果你想在一行中写多条语句,则必须用分号分隔它们:
fmt.Print("First"); fmt.Print("Second") // Semicolon required here注释是编译器忽略的解释性文本。Go 支持两种类型的注释:
- 单行注释:以
//开头并持续到行尾。
// This is a single-line commentvar message = "Hello" // Comment after code- 多行注释:以
/*开头并以*/结束。它们可以跨越多行。
/*This is a multi-line comment.It can span several lines.*/注释不能嵌套。它们也不影响字符串或字符字面量的解释。
提示:使用以声明项名称为前缀的注释(例如,// User represents a user 或 /* Package config handles configuration */),紧跟在 package、类型、函数或变量声明之前,可以使用 go doc 工具生成文档。这些被称为文档注释(doc comments)。
标识符 (Identifiers)
Section titled “标识符 (Identifiers)”标识符是用于识别变量、函数、类型、常量等的名称。标识符的规则:
- 必须以字母 (A-Z, a-z) 或下划线 (
_) 开头。 - 后面可以跟任意数量的字母、数字 (0-9) 或下划线。
- 不能使用
@,$,%等标点符号。 - 区分大小写 (
userAge和UserAge是不同的)。
有效标识符的示例:
userService _tempVar isValid MAX_RETRIES piValue可见性(导出 vs 未导出): 在 Go 中有一个重要的约定,即以大写字母开头的标识符是导出(exported)的(可以被其他 package 公开访问)。以小写字母或下划线开头的标识符是未导出(unexported)的(仅限于其定义的 package 内部使用)。
var InternalCounter int // Unexported (private to this package)const ExportedConstant = 3.14 // Exported (public)关键字 (Keywords)
Section titled “关键字 (Keywords)”关键字是 Go 语言中具有特殊含义的保留字。它们不能用作标识符。以下是 Go 的关键字列表:
| break | default | func | interface | select |
|---|---|---|---|---|
| case | defer | go | map | struct |
| chan | else | goto | package | switch |
| const | fallthrough | if | range | type |
| continue | for | import | return | var |
Go 中的空白字符 (Whitespace)
Section titled “Go 中的空白字符 (Whitespace)”空白字符指空格、制表符和换行符。Go 使用空白字符来分隔词法单元。空行(仅包含空白字符和可能的注释)会被编译器忽略。
在此语句中,var、age 和 int 之间必须有空白字符:
var age int在此语句中,等号 = 和加号 + 周围的空白字符是可选的,但可以提高可读性:
total = items + tax // Calculate the totalGo 最佳实践: 使用 gofmt 工具(或 go fmt)根据 Go 标准约定自动格式化你的代码。大多数 Go 开发环境都集成了这个工具,以确保代码风格和空白字符的一致性。