2.1 GO 变量定义
GO有四种数据类型,数字、布尔、字符、派生类型;这里使用前三种简单类型来说明变量的定义与使用
package main import "fmt"
var (
aa = 1
bb = true
ss = "作用域为包的变量"
s2,s3 = "包变量的位置可能写在包内的任何地方","即可以是引用的前面也可以在引用的后面"
)
//GO有四种类型,数字、布尔、字符、派生类型 //变量的默认值 func var1(){ var a int var b bool var f float64 var s string // %d 表示数字,%s表示字符串,%q可以为字符串带上双引号 fmt.Printf("%d-%s-%q\n",a,s,s) // 0--"" fmt.Println(b) //false fmt.Println(f) //0 } //变量初始化 func var2(){ var a int = 100 //明确地写出了变量的类型 var b,f,s = true,3.14,"批评别人时,一定要顾及听者的面子" //不定义类型,同时多变量写于一行 fmt.Println(a,b,f,s) var aa = 300 var ss = "在回答别人或对别人发表观点时,一定要先准确理解别人的意思" fmt.Println(aa,ss) } //较常用的变量声明赋值方式 func var3(){ //多行合并为一行,省去了类型,连var关键字也省去了,编辑器自动判断变量类型;只能用于一次声明变量时使用 s1,s2 := "话越多","越没有份量" fmt.Println(s1,s2) //第二次使用时,不可再加冒号 s1,s2 = "讲话时不能只顾着自己说","更要注意对方的感受和情绪变化" fmt.Printf("%s,%q",s1,s2) //讲话时不能只顾着自己说,"更要注意对方的感受和情绪变化" } func main() { var1() var2() var3() }
几个注意事项
变量的命名:
推荐使用studentName,而不是student_name
首字母大写有特殊的含义,比如一个包的方法要想在其他包中使用,那么该方法名称必须首字母大写,又比如结构体中的属性等
变量的作用域:
比如包a下有b.go与c.go,b.go中有方法C,则其他包引用的方式为a.C()
包,即文件所在目录的名称,包名文件夹下可以有多个文件,包内变量的作用域是可以跨越这些文件的;比如,一个包中不允许存在两个相同名称的方法,会提示重复;
函数内的变量的作用域就只是在函数内了
字符串
字符串分为原生字符串、解释型字符串两种;
原生字符串使用``(反引号),解释型字符串使用双引号"",解释型字符串中可以解析转义字符;