1、小程序“hello world”
下面的代码可能是你遇到的最简单的GO程序:
// helloworld.gopackage mainimport"fmt"func main() {fmt.Println("Hello, World!")}
和预期的一样,在屏幕上输出了“Hello, World”字符,这是一个非常简单的程序,但也展现出来Go语言的相关的概念:
注释
包
引入包
main函数
输出字符
下面简单描述下这些概念。
1)、注释
程序的第一行是注释,这只供程序员阅读的一条消息,编译器会将其忽略。在Go中,可以通过两种方法添加注释。在前面以及下面的示例中,用两条斜杠表明这一行中在它后面的内容都是注释。
// helloworld.go
使用多行注释也可以实现这一行为。多行注释以/*开始,以*/结束。下面的代码使用了多行注释。
/*Thisis a multiline comment. The compiler will ignore it.*/
2)、包
在Go语言中包的作用和其他语言中的库或者模块作用类似,用于支持模块化、封装、编译隔离和重用。一个包的源代码保存在一个或多个以.go结尾的文件中。
packagemain
其中package是Go中用于包声明语句的关键字。Go规定包声明中的包名是代码包路径的最后一个元素。
名为main的包比较特殊,它用于定义一个独立的可执行程序,而不是库。
3)、引入包
代码包“helloworld.go”需要依赖fmt子包,因此需要在源码文件中使用代码包导入语句,如:
import"fmt"
其中import是Go中用于引入代码包语句的关键字,import声明必须跟在package声明之后,而fmt为Go中基础包,用于输出、格式化数据等。
引入代码包时,需要用到代码包导入路径,即代码包在工作区的src目录下的相对路径。
4)、main函数
在main包中,函数main是一个特殊的函数,main函数是程序的入口,并且无参数和无返回值,而且main函数必须包含在main包中。
funcmain(){fmt.Println("Hello, World!")}
函数的声明由func关键字、函数名、参数列表(main函数为空)、返回值列表(可以为空)、放在大括号内的函数体组成。
func函数名(参数1,参数2,...) 返回值列表 { 函数体}
细心的朋友能够看看到,main函数内的语句没有以分号结尾。Go不需要在语句或声明后面使用分号结尾,除非有多个语句或声明出现在同一行。事实上,跟在特定符号后面的换行符被转换为分号,在什么地方进行换行会影响对Go代码的解析。例如,“{”符号必须和关键字func在同一行,不能独自成行。
5)、输出字符
Go的标准库中有100多个包用来完成输入、输出、排序、文本处理等常规任务。例如,fmt包中的函数用类格式输出和扫描输入。Println是fmt中的一个基本输出函数,他输出一个或多个用空格分隔的值,结尾使用一个换行符,这样看起来这些值是单行输出。