python 做网站相关的库,电子商务网店毕业设计,通桥小学的网站建设,本地的番禺网站建设第一个 Go 程序hello#xff0c;world 与 main 函数 文章目录 第一个 Go 程序hello#xff0c;world 与 main 函数一.创建“hello#xff0c;world”示例程序二. “hello#xff0c;world” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译…第一个 Go 程序helloworld 与 main 函数 文章目录 第一个 Go 程序helloworld 与 main 函数一.创建“helloworld”示例程序二. “helloworld” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译的 一.创建“helloworld”示例程序
创建一个叫做 main 的 go 文件。
mkdir syntax/helloworld // 创建存储helloworld示例的文件夹啰嗦一下 Go 的命名规则。Go 源文件总是用全小写字母形式的短小单词命名并且以.go 扩展名结尾。以下是Go文件命名规则的主要要点
使用小写字母Go文件名应该使用小写字母不推荐使用大写字母或驼峰命名法。这是因为Go的命名约定中使用大写字母开头的标识符是公有的而使用小写字母开头的标识符是私有的。下划线不推荐虽然Go允许在文件名中使用下划线字符_但不推荐在文件名中使用下划线。通常Go文件名应该是简单的单词以描述文件内容或包功能为主。使用有意义的文件名文件名应该能够清晰地表达文件的用途和内容。这有助于提高代码的可读性和维护性。避免特殊字符和空格文件名中不应包含特殊字符、空格或其他不允许的字符。避免关键字文件名不应与Go的关键字例如if、else、for等冲突。
如果要在源文件的名字中使用多个单词我们通常直接是将多个单词连接起来作为源文件名而不是使用其他分隔符比如下划线。也就是说我们通常使用 helloworld.go 作为文件名而不是 hello_world.go。
因为下划线这种分隔符在 Go 源文件命名中有特殊作用,在Go语言中使用下划线作为源文件命名的分隔符,主要是为了进行包范围控制,避免命名冲突。
这里我们创建一个名为 main.go 的源文件
touch syntax/helloworld/main.go打开刚刚创建的 main.go 文件键入下面这些代码:
package mainimport fmtfunc main() {fmt.Println(hello, world)
}写完后我们保存文件并回到终端窗口然后在 Linux 或 macOS 系统中你就可以通过输入下面这个命令来编译和运行这个文件了
go build main.go
./main如果是在 Windows 系统中呢你需要把上面命令中的./main 替换为.\main.exe。
go build main.go
main.exe输出结果如下 二. “helloworld” 程序结构拆解
首先第一个值得注意的部分是这个
package main这行代码定义了 Go 中的一个包 package。包是 Go 语言的基本组成单元通常使用单个的小写单词命名一个 Go 程序本质上就是一组包的集合。所有 Go 代码都有自己隶属的包在这里我们的“helloworld”示例的所有代码都在一个名为 main 的包中。main 包在 Go 中是一个特殊的包整个 Go 程序中仅允许存在一个名为 main 的包。
**主程序函数**main 包中的主要代码是 main 函数
func main() {fmt.Println(hello, world)
}main入口
这里的 main 函数就是当你运行一个可执行的 Go 程序的时候所有的代码都会从这个入口函数开始运行。这段代码的第一行声明了一个名为 main 的、没有任何参数和返回值的函数。如果你需要给函数声明参数的话那么就必须把它们放置在圆括号 () 中。
导入包
import fmt在 main 函数体中通过 fmt 这个限定标识符Qualified Identifier调用 Println 函数。虽然两处都使用了“fmt”这个字面值但在这两处“fmt”字面值所代表的含义却是不一样的
import “fmt” 一行中“fmt”代表的是包的导入路径Import它表示的是标准库下的 fmt 目录整个 import 声明语句的含义是导入标准库 fmt 目录下的包fmt.Println 函数调用一行中的“fmt”代表的则是包名。
通常导入路径的最后一个分段名与包名是相同的这里很容易让人误解 import 声明语句中的“fmt”指的是包名其实并不是这样的只有 fmt.Println 函数调用一行中的“fmt”代表的则是包名。
main 函数体中之所以可以调用 fmt 包的 Println 函数还有最后一个原因那就是 Println 函数名的首字母是大写的。在 Go 语言中只有首字母为大写的标识符才是导出的Exported才能对包外的代码可见如果首字母是小写的那么就说明这个标识符仅限于在声明它的包内可见。
三、main 函数
Go语言程序的默认入口函数(主函数)func main()main函数只能用于main包中且只能定义一个。
四、Go 语言中程序是怎么编译的
刚刚我在运行hello, world程序之前输入了 go build 命令还有它附带的源文件名参数来编译它
$go build main.go打开终端可以通过输入下面这个 ls 命令看到刚刚生成的可执行文件
$ls
main main.go和python 等其他语言不通的是最终将mian运行在没有安装 Go 的环境中。如果是python 项目的话还需要安装python解释器和项目依赖等。
Go 是一种编译型语言这意味着只有你编译完 Go 程序之后才可以将生成的可执行文件交付于其他人吗Go程序的编译过程可以总结为以下几个关键步骤
词法与语法分析编译器首先解析源代码文件 将代码转换成Token序列 然后按照语言定义的文法规则生成抽象语法树AST 。类型检查编译器对AST进行类型检查 验证变量 、 常量 、 函数等的类型正确性 同时对一些内置函数进行展开和处理 。中间代码生成经过类型检查后 编译器将AST转换成中间代码 使用了SSAStatic Single Assignment Form特性 有助于代码优化 。机器码生成最后 编译器根据目标机器的架构如amd64 、 arm 、 x86等生成相应的机器码 使程序可以在不同的硬件上运行 。 具体请参考链接Go程序是如何编译运行的