go之变量
注释
单行注释
// 单行注释 等同于python #
多行注释
/* */ 多行注释 等同于python 三引号
变量的定义和使用
先定义再使用
完整定义
package main import "fmt" func main() { //var 变量名 变量类型 = 变量值 定义并赋初值 var name string = "zys" fmt.Println(name) }
类型推导
虽然是类型推导,但是在定义阶段类型就固定了,后期不能改
package main import "fmt" func main() { //var 变量名 = 变量值 // 自动推到出变量是string类型 //var name ="zys" //var age =19 ////var age int =99 // 一旦定义过,就不能再定义了 //fmt.Println(name) //fmt.Println(age) ////name="彭于晏" // 修改变量的值 ////name=19 // 修改变量的值,类型固定,不能改 //fmt.Println(name)) }
简略声明
:= 表示定义并赋初值 用的多,但是不代表它没有类型
package main import "fmt" func main() { name := "zys" fmt.Println(name) name = "pyy" // 重复定义 fmt.Println(name) }
通过类型推导的方式同时定义多个变量
//var name,age,hobby ="zys",19,"篮球" //fmt.Println(name,age,hobby)
通过完整定义的方式同时定义多个变量
//var name,age,hobby string = "zys","19","篮球" //fmt.Println(name,age,hobby)
变量后面只能跟一种类型,不能多种。定义了string类型,age就不能是int类型
通过简略声明的方式同时定义多个变量
//name,age,hobby:="zys",19,"篮球" //fmt.Println(name,age,hobby)
混合使用(用的比较多)
// 用括号括起来,第一种和第二种的混合,这种用的多,如果变量不赋初值,是没法类型推到 //var ( // name string = "zys" // age int // hobby = "篮球" // wife string // 定义没有赋初值,为0 //) //fmt.Println(name, age, hobby,wife)
变量不能重复定义,但是可以使用 : 的形式,只要左侧有没定义过的,它算修改值
var name ="zys" //name:="pyy" 重复定义报错 name,age:="pyy",19 // 只要左侧有没定义过的变量,这个就不错 fmt.Println(name,age)
python 中所有类型都可以是None---》python一切皆对象(引用)--》地址里没放东西就是None,对着go中是nil,java中null
注意点:
1.变量定义了必须使用,如果不用就报错,编译不通过
2.变量在定义阶段,类型就固定了,后期不能改
3.变量不能重复定义 无论用那种方式定义过,都不能再定义了,只能使用
变量命名规范
命名规范
Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:
1.一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线
2.大写字母和小写字母是不同的:Name和name是两个不同的变量
3.关键字和保留字都不建议用作变量名 --->内置函数,包,关键字不能做变量名
25个关键字
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
内建常量
true false iota nil
内建类型
int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error
内建函数
make len cap new append copy close delete complex real imag panic recover
注意
go变量定义推荐用驼峰 AgeOfPerson java中也是
python中推荐下划线 age_of_person
go大小写有特殊含义
go的文件命名推荐用下划线
go变量定义推荐用驼峰,go的文件命名推荐用下划线