1. 认识HelloWorld
在前面的《Go的安装和使用》这篇文章中已经写过HelloWorld.go
了,现在就来逐行认识一下它。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
第1行:我们的Go程序是由包——package
构成的,包的声明形式为:package
。该行的意思是:当前HelloWorld.go
文件属于main
包。
第2行:如果你使用过Java或Python,那你对import肯定不陌生。该行的意思是:导入一个名为fmt
的包。如果需要导入多个包,有两种写法:
import "fmt"
import "math"
或者使用分组形式同时导入多个包
import (
"fmt"
"math/rand"
)
显然第二种使用括号,以分组的形式导入更加方便。
第3行:我们使用func
关键字来声明一个函数,在这个例子中,我们声明的是main
函数。如果你有过其他语言的编程经验,肯定熟悉main
函数的作用:程序的入口。
第4行:我们的函数内容放在函数的{}
中,在该例中,调用了fmt
包中的打印方法,由此可见,Golang语言调用函数的方法和Java、Python一样使用小数点:.
。
看完这几行简单代码,我们发现:在Go语言中,并不需要分号;
来结束语句。
2. 变量
2.1. 命名规范
Go语言要求标识符以一个字母或下划线开头,后面可以跟任意数量的字母、数字、下划线。不能使用关键字作为标识符
区分大小写,变量num
和变量Num
是两个变量。
2.2. 声明
Go语言的变量声明方式和其他语言(如C、Java、Python)不太一样。
比如,我们声明一个为int类型的变量a:
var a int
可以看出,Go语言声明变量的方式为:
var
我们还可以同时声明多个类型相同的变量:
var 1>, 2>, 3>, ...
使用分组同时声明多个类型不同的变量:
var (
1> 1>
2> 2>
3> 3>
...
)
下面是一个具体的例子:
package main
import "fmt"
var i bool//类型在后
func main() {
var a, b, c int//多个
fmt.Println(i, a, b, c)
}
2.3. 初始化
当我们声明变量时,可以对其进行初始化。当有初始值时,我们可以省略变量的类型,变量会根据对应的初始值获取正确的类型。见下例:
package main
import "fmt"
var a int = 1
var b, c bool = true, false
func main() {
var i, j, k = 2, false, "行小观" //省略变量类型
fmt.Println(a, b, c, i, j, k)
k = "行小观2号" //赋值操作
fmt.Println(k)
}
若我们在声明变量时,不给变量赋初始值,则这些变量会被赋予“零值”。
这些零值为:
- 数值类型为0
- 布尔类型为false
- 字符串为""(即空字符串)
如果上例中的代码中的变量不进行初始化,即:
package main
import "fmt"
var a int
var b, c bool
func main() {
var i int
var j bool
var k string
fmt.Println(a, b, c, i, j, k)
}
则打印结果为:0 false false 0 false (变量k由于是空字符串,所以打印出来了但是看不到)
2.4. 短变量声明
前面介绍了当我们声明变量时有以下几种方式