一.静态语言和动态语言 * 静态类型语言和强类型语言是同一个意思,表示在编译期就确定了类型,而且类型是不可以改变的 * 动态类型语言和弱类型语言是同一个意思,表示在运行过程中才能确定,且内容是什么类型变量类型跟随变化 # 二.Go语言变量简介 * Go语言和其他语言一样都有基本存储容器.可以存储一个或多个值在程序中,方便程序中多次使用容器中内容,这个容器称为:**变量** * Go语言虽然是静态类型语言,但是支持动态类型语言语法,因为Go语言希望程序员少声明变量,增加GC效率 # 三.变量命名规则 * 以字母或下划线开头(Go语言中多不以_开头) * 后面可以是任意数量的字符、数字和下划线 * 区分大小写 * 不能是关键字(关键字具备特定含义),下面是Go语言的关键字 | 关键字如下 | | | | | | :------: | :---------: | :----: | :-------: | :----: | | 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 |
* 先声明后赋值(声明后开辟内存,不同类型变量都有不同初值) ```go //语法: //1. 声明 var 变量名 类型 //2. 赋值 变量名=值 //示例: var smallming string smallming = "英文名" ``` * 声明并赋值(此方式不建议) ```go //语法: var 变量名 类型 = 值 ``` * 短变量(只能在函数内使用) ```go //语法: 变量名 := 值 //示例: smallming := "英文名" ``` # 五.声明多个变量和赋值 * 先声明后赋值 ```go func main() { var a, b, c int a, b, c = 1, 2, 3 } ``` * 声明时赋值 ```go func main() { var a, b, c, d = 1, 2, 3, false fmt.Println(a, b, c, d) } ``` * 声明并赋值,推荐方式 ```go func main() { var ( a = 1 b = true c = "测试" ) fmt.Println(a, b, c) } ``` * 使用短变量给多个变量赋值时,必须要保证至少有个变量是没有声明的 ```go func main() { var ( a = 1 b = true c = "测试" ) //短变量操作多个值时只要保证里面至少有一个新变量 b, c, d := false, "smallming", 3 fmt.Println(a, b, c, d) } ```
# 三.浮点运算 * float32和float64之间不可以相互运算,需要进行类型转换 ```go func main() { var a float32 = 1.5 var b float64 = 3.3 //默认是float64类型 fmt.Println(a + float32(b)) //float64向float32转换 fmt.Println(float64(a) + b) //float32向float64转换 } ``` * 建议使用float64,虽然占用空间多,但是float32在累计运算时可能出现误差 * 整型运算和浮点型运算结果类型为本身类型