Go 语言结构 基础语法

📅 2026/8/16 1:52:57
Go 语言结构 基础语法
在我们开始学习 Go 编程语言的基础构建模块前让我们先来了解 Go 语言最简单程序的结构。Go Hello World 实例Go 语言的基础组成有以下几个部分包声明引入包函数变量语句 表达式注释接下来让我们来看下简单的代码该代码输出了Hello World!:实例package main import fmt func main() { /* 这是我的第一个简单的程序 */ fmt.Println(Hello, World!) }让我们来看下以上程序的各个部分第一行代码package main定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包如package main。package main表示一个可独立执行的程序每个 Go 应用程序都包含一个名为 main 的包。下一行import fmt告诉 Go 编译器这个程序需要使用 fmt 包的函数或其他元素fmt 包实现了格式化 IO输入/输出的函数。下一行func main()是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的一般来说都是在启动后第一个执行的函数如果有 init() 函数则会先执行该函数。下一行 /*...*/ 是注释在程序执行时将被忽略。单行注释是最常见的注释形式你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释均已以 /* 开头并以 */ 结尾且不可以嵌套使用多行注释一般用于包的文档描述或注释成块的代码片段。下一行fmt.Println(...)可以将字符串输出到控制台并在最后自动增加换行字符 \n。使用 fmt.Print(hello, world\n) 可以得到相同的结果。Print 和 Println 这两个函数也支持使用变量如fmt.Println(arr)。如果没有特别指定它们会以默认的打印格式将变量 arr 输出到控制台。当标识符包括常量、变量、类型、函数名、结构字段等等以一个大写字母开头如Group1那么使用这种形式的标识符的对象就可以被外部包的代码所使用客户端程序需要先导入这个包这被称为导出像面向对象语言中的 public标识符如果以小写字母开头则对包外是不可见的但是他们在整个包的内部是可见并且可用的像面向对象语言中的 protected 。执行 Go 程序让我们来看下如何编写 Go 代码并执行它。步骤如下打开编辑器如Sublime2将以上代码添加到编辑器中。将以上代码保存为hello.go打开命令行并进入程序文件保存的目录中。输入命令go run hello.go并按回车执行代码。如果操作正确你将在屏幕上看到Hello World!字样的输出。$ go run hello.go Hello, World!我们还可以使用 go build 命令来生成二进制文件$ go build hello.go $ ls hello hello.go $ ./hello Hello, World!注意需要注意的是 { 不能单独放在一行所以以下代码在运行时会产生错误实例package main import fmt func main() { // 错误{ 不能在单独的行上 fmt.Println(Hello, World!) }Go 语言基础语法上一章节我们已经了解了 Go 语言的基本组成结构本章节我们将学习 Go 语言的基础语法。Go 标记Go 程序可以由多个标记组成可以是关键字标识符常量字符串符号。如以下 GO 语句由 6 个标记组成fmt.Println(Hello, World!)6 个标记是(每行一个)1. fmt 2. . 3. Println 4. ( 5. Hello, World! 6. )行分隔符在 Go 程序中一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾因为这些工作都将由 Go 编译器自动完成。如果你打算将多个语句写在同一行它们则必须使用 ; 人为区分但在实际开发中我们并不鼓励这种做法。以下为两个语句fmt.Println(Hello, World!)fmt.Println(菜鸟教程runoob.com)注释注释不会被编译每一个包应该有相关注释。单行注释是最常见的注释形式你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释均已以 /* 开头并以 */ 结尾。如// 单行注释 /* Author by 菜鸟教程 我是多行注释 */标识符标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列但是第一个字符必须是字母或下划线而不能是数字。以下是有效的标识符mahesh kumar abc move_name a_123 myname50 _temp j a23b9 retVal以下是无效的标识符1ab以数字开头caseGo 语言的关键字ab运算符是不允许的字符串连接Go 语言的字符串连接可以通过 实现实例package mainimport fmtfunc main() {fmt.Println(Google Runoob)}以上实例输出结果为GoogleRunoob关键字下面列举了 Go 代码中会使用到的 25 个关键字或保留字breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar除了以上介绍的这些关键字Go 语言还有 36 个预定义标识符appendboolbytecapclosecomplexcomplex64complex128uint16copyfalsefloat32float64imagintint8int16uint32int32int64iotalenmakenewnilpanicuint64printprintlnrealrecoverstringtrueuintuint8uintptr程序一般由关键字、常量、变量、运算符、类型和函数组成。程序中可能会使用到这些分隔符括号 ()中括号 [] 和大括号 {}。程序中可能会使用到这些标点符号.、,、;、: 和 …。Go 语言的空格在 Go 语言中空格通常用于分隔标识符、关键字、运算符和表达式以提高代码的可读性。Go 语言中变量的声明必须使用空格隔开如var x int const Pi float64 3.14159265358979323846在运算符和操作数之间要使用空格能让程序更易阅读无空格fruitapplesoranges;在变量与运算符间加入空格程序看起来更加美观如fruit apples oranges;在关键字和表达式之间要使用空格。例如if x 0 { // do something }在函数调用时函数名和左边等号之间要使用空格参数之间也要使用空格。例如result : add(2, 3)格式化字符串Go 语言中使用 fmt.Sprintf 或 fmt.Printf 格式化字符串并赋值给新串Sprintf根据格式化参数生成格式化的字符串并返回该字符串。Printf根据格式化参数生成格式化的字符串并写入标准输出。Sprintf 实例package mainimport (fmt)func main() {// %d 表示整型数字%s 表示字符串var stockcode123var enddate2020-12-31var urlCode%dendDate%svar target_urlfmt.Sprintf(url,stockcode,enddate)fmt.Println(target_url)}输出结果为Code123endDate2020-12-31Printf 实例package mainimport (fmt)func main() {// %d 表示整型数字%s 表示字符串var stockcode123var enddate2020-12-31var urlCode%dendDate%sfmt.Printf(url,stockcode,enddate)}输出结果为Code123endDate2020-12-31