分享

Go语言如何编写hello word 0基础学习go语言系列

 老男孩Linux 2019-01-15

1、创建文件 hello.go,不写入任何内容。运行 go build hello.go 命令进行编译。将会输出如下错误:

can't load package: package main:

hello.go:1:1: expected 'package', found 'EOF'

因为Go语言中,所有文件必须隶属于某一个包。需要在文件的头部声明一个package name,其中package为关键字,name为包名。

2、在hello.go文件中添加一条语句,之后重新进行编译。

添加内容如下:

package main

执行编译,将会输出如下错误:

runtime.main_main·f: relocation target main.main not defined

runtime.main_main·f: undefined: "main.main"

因为Go程序启动时,需要在文件中有一个可标识入口。Go程序的入口函数是main函数。

3、在hello.go文件中添加另外一行,并且重试。

添加内容如下:

package main

func main(){}

执行运行命令 go run hello.go ,程序正确执行并很快就退出了。

到目前为止,我们已经创建了自己的第一个程序。虽然没有功能,但是已经可以正常运行了。

4、我们继续添加功能,添加内容如下:

package main

func main(){

Println("hello world")

}

执行编译,将会输出如下错误:

1./hello.go:4:2: undefined: Println

因为Println函数存放在fmt包中。我们程序中没有主动引入fmt包,所以编译器报未定义错误。

如果我们需要使用这些包中的功能,首先需要import引入相应的包。包中的可导出组件可以通过 包名.组件名的方式进行调用。

函数Println和其它读写文本和字符的函数,都存放在一个叫做fmt的包中——formatting的缩写。

5、再添加几行代码,添加内容如下:

package main

import "fmt"

func main(){

fmt.Println("hello world")

}

执行 go run hello.go 命令,运行程序。运行结果如下:

hello world

Go 程序启动执行顺序如下:

按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:

如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。

然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。

在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多