注:本人已有C,C++,Python基础,只写本人认为的重点。
一、变量的三种声明方式
go
func main() {
//方式1,指定数据类型,声明后若不赋值,使用默认值
//比如int的默认值是0,string的默认值是空串
var i int = 1
//方式2,类型推导,根据值自行判定变量类型
var num = 10.11
//方式3,省略var的类型推导(短变量声明)
//下面的方式与var name string;name = "tom"等价
name := "tom"
}
特别注意 :go的局部变量声明后,若它再次被赋值,不算使用!会报错!只有该变量放在等号右边或用于函数调用才算使用。变量在等号右边的情况有两种:一是赋值自己,比如自增,二是赋值给其他变量。
二、多变量的声明
go
func main() {
//方式1,指定数据类型,从左到右依次赋值,下同
var n1, n2, n3 int = 1, 2, 3
//方式2,类型推导
var n1, name , n3 = 100, "tom", 888
//方式3,省略var的类型推导(短变量声明)
n1, name , n3 := 100, "tom~", 888
}
曾经有道面试题,给定两个变量,要求不使用中间变量的情况下交换它们。有种方法是a=a+b;b=a-b;a=a-b;其实不用这么麻烦,只需一句就行了,这也是python的语法:a,b=b,a。
三、全局变量的声明
go
package main
import "fmt"
//定义全局变量
var n = 100
var name = "jack"
//上面的声明方式,也可以改成一次性声明
var (
n2 = 300
name2 = "mary"
)
func main() {
}
特别注意 :全局变量无法用短变量声明,必须显示赋值!