GO 程序的基本结构
Go 语言的文件后缀是 .go
结尾,例如 hello.go
Go 项目的文件目录通常是这样的:
.
└── src
└── go_code
└── learn 项目名
└── package1
└── package2
以下代码是一个 hello world 程序的代码示例
/**
* hello 主程序
* @version: v1.0
* @author: Clover
* @create: 2023-04-30 16:04
*/
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
- 1~6行是一个块注释,写在我们代码文件头部的注释,通常是对当前文件的一个描述,这是一个好习惯,我推荐大家都这么做,通常在 IDE 中也可以配置生成这种注释。
package main
表示该文件所在的包是main
。Go 文件都必须归属于某一个包而不能脱离。import "fmt"
表示引入一个包,包名为fmt
,引入该包后,就可以使用fmt
包里面的函数,例如:fmt.Println("")
func main() {...}
它是一个主函数,每一个程序都必须存在一个主函数,它是程序的入口,和 Java 语言的main
函数是一样的。fun
是一个关键字,表示一个函数,后面紧跟一个函数名。{...}
函数名后的花括号表示一个作用域,或者称为代码块。我们方法的所有逻辑基本都是写在这些{}
里。
fmt.Println("hello world!")
表示通过成员运算符.
来调用fmt
包下的Println()
方法,这个方法实现的功能是将我们传递的参数打印到控制台。在这我传递了一个hello world!
字符串,程序执行后控制台将输出hello world
如果需要执行 go 代码,可以通过 go build
命令去将其编译成一个可执行文件。如若不需要打包而是单纯的想执行它,那么可以使用 go run
命令去操作:
# clover @ MacBook-Pro in ~/dev/go/learn/src/go_code/learn/main [16:26:12]
$ go run hello.go
hello world!
通过 go build
命令去生成可执行文件,那么默认的文件名是源码文件的文件名,例如:go build hello.go
它会生成 hello
。
如果需要重命名,那么可以通过 -o
参数进行指定,需要注意的是:后缀必须对应当前操作系统执行文件的后缀,例如windows下是 exe ,在 Mac 中无需指定后缀。
go build -o test hello.go
执行 go run
命令比执行 go build
后执行可执行文件的速度是要慢的,因为执行文件是通过 go build
生成的,无需二次 build
,而 go run
命令每次执行的时候都需要 build
。
- 使用
go build
命令编译后,即使在没有 Go 开发环境的机器上,编译生成的可执行文件它仍然是可以正常运行的。 - 如果我们直接使用
go run
命令,它是不会生成任何可执行文件,如果想要在其它机器上运行,那么需要配置 Go 开发环境,否则无法执行。 - 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以可执行文件实际大小比源码大很多。
标签:fmt,0x00,hello,go,build,Go,main,Hello From: https://www.cnblogs.com/CloverYou/p/17474229.html
- Go 源文件后缀名是
.go
- Go 应用程序的执行入库是
main()
函数- Go 语言严格区分大小写
- Go 代码每个语句后边后不需要加上分号(Go 编译时会在每行末尾自动加分号),当然手动加上分号也是没有问题的。
- Go 编译器是至上而下一行一行进行编译的,因此我们代码中如果没有手动添加分号
;
,那么一行只允许存在一条语句。因为如果没有添加分号且一行存在多条语句的时候,编译器会将其当作一个完整的语句来编译,这会造成语法错误。- Go 语言自定义变量或者import的包没有被使用时,代码无法通过编译,因为这种情况在大项目下,可能会造成非常多的冗余无效代码
- 大括号
{}
都是成对出现的,缺一不可