03.第一个Go程序

2022-09-03 22:14:36 浏览数 (1)

第 3 章 第一个 Go 程序

3.1 Hello Go

在控制台输出“Hello Go!”非常简单,仅需要几行代码就可以搞定,如下所示:

代码语言:txt复制
package main   // 声明 main 包

import "fmt"   // 导入 fmt 包,打印字符串时需要用到

func main(){   // 声明 main 主函数
    fmt.Println("Hello, Go!")  // 打印 Hello Go!
}

大家也许不明白这些代码的含义,没关系,下面就来依次介绍。

3.1.1 注释

作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码,能够大大增强程序的可读性。

两种格式

  • 单行注释:通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明。
代码语言:txt复制
fmt.Println("Hello, Go!") // 右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用。
  • 多行注释:通常放在一段代码的上方,对该段代码做整体说明。
代码语言:txt复制
func main() {
  	/*
  		以下两行代码都是将信息打印在屏幕上
  	 */
  	fmt.Println("以下是我的微信公众号:")
  	fmt.Printf("《面向加薪学习》")
  }
  • 特别说明:
    • 编译器在编译代码时,会忽略注释的内容。如果你写的代码不想让计算机执行,那么也可以加上注释。加了注释后代码不会被编译执行,这就是对已有的代码进行注销。
    • 以后写程序要多加注释,这是我们程序猿的专业和职业道德,不加注释就是流氓。

3.1.2 package(创建包)

Go 语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式如下:

代码语言:txt复制
package name    // 其中 package 是声明包名的关键字, name 为包的名字。

Go 语言的包与文件夹是一一对应的,它具有以下几点特性:

  • 一个目录下的同级文件属于同一个包。
  • 包名可以与其目录名不同。
  • main 包是 Go 语言程序的入口包,一个 Go 语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。

3.1.3 import(导入包)

在包声明之后,是 import 语句,用于导入程序中所依赖的包,导入的包名使用双引号""包围,格式如下:

代码语言:go复制
import "name"   // 其中 import 是导入包的关键字,name 为所导入包的名字。

代码第 4 行导入了 fmt 包,这行代码会告诉 Go 编译器,我们需要用到 fmt 包中的函数或者变量等,fmt 包是 Go 语言标准库为我们提供的,用于格式化输入输出的内容,类似的还有 os 包、io 包等。

另外有一点需要注意,导入的包中不能含有代码中没有使用到的包,否则 Go 编译器会报编译错误,例如imported and not used: "xxx","xxx" 表示包名。

也可以使用一个 import 关键字导入多个包,此时需要用括号( )将包的名字包围起来,并且每个包名占用一行,也就是写成下面的样子:

代码语言:txt复制
import(
    "name1"
    "name2"
)

3.1.4 main 函数

第 5 行代码创建了一个 main 函数,它是 Go 语言程序的入口函数,也即程序启动后运行的第一个函数。main 函数只能声明在 main 包中,不能声明在其他包中,并且,一个 main 包中也必须有且仅有一个 main 函数。

main 函数是自定义函数的一种,在 Go 语言中,所有函数都以关键字 func 开头的,定义格式如下所示:

代码语言:txt复制
func 函数名 (参数列表) (返回值列表){
    函数体
}

注意:Go 语言函数的左大括号{必须和函数名称在同一行,否则会报错。

3.1.5 打印输出

代码的第 6 行fmt.Println("Hello Go!")中,Println 是 fmt 包中的一个函数,它用来格式化输出数据,比如字符串、整数、小数等。这里我们使用 Println 函数来打印字符串。注意,Println 函数打印完成后会自动换行,ln 是 line 的缩写。另外,代码fmt.Println("Hello Go!")的结尾,不需要使用;来作为结束符,Go 编译器会自动帮我们添加,当然,在这里加上;也是可以的。

0 人点赞