变量
声明变量
定义变量
| 一次定义一个 |
| var num = 10 |
| 一次定义多个 |
| var num, num1 = 10, 11 |
标准变量写法
在Go中变量声明的基本格式为:var 变量名 类型 = 值 ,例如:
| |
| var name string = "董雷" |
| |
| var age int = 30 |
变量简写1
省略类型,格式为:var 变量名 = 值 ,这样彻底变为js了
| var name = "董雷" |
| var age = 30 |
| |
变量简写2,这种不能用作全局变量
省略var关键字,格式为:变量名 := 值 (推荐)
分开声明和赋值
| |
| var name string |
| |
| name = "董雷" |
注意:如果变量只声明不赋值,Go内部其实会给变量默认设置值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 。
全局变量
| |
| var country string = "中国" |
| |
| |
特别提醒:Go中的全局变量比较特殊,如果全局变量名首字母小写,则只能被当前包中的go文件使用,外部无法使用;如果首字母大写,则任意文件都使用全局变量。
局部变量
| var name string = "董雷" |
| `var age = 30` |
| `name := "董雷"` |
因式分解
全局和局部作用域都可以使用
| 传统写法 |
| var name = "董雷" |
| var age = 30 |
| var gender string |
| 因式分解简写 |
| var ( |
| name = "董雷" |
| age = 30 |
| gender string |
| ) |
常量
不可被修改的变量。
| |
| const World string = "世界" |
| const age = 98 |
| |
| const x, y int = 1, 2 |
因式分解
| |
| const ( |
| v1 = 123 |
| v2 = 456 |
| pi = 9.9 |
| ) |
| |
| |
| const ( |
| e = 2.71828182845904523536028747135266249775724709 |
| pi = 3.141592653589582097494459 |
| b bool = true |
| ) |
汇总
| package main |
| import ( |
| "fmt" |
| "unsafe" |
| ) |
| |
| const World string = "世界" |
| |
| const x, y int = 1, 2 |
| |
| const s1 = "Hello golang" |
| |
| const ( |
| e = 2.71828182845904523536028747135266249775724709369995957496696763 |
| pi = 3.14159265358979323846264338327950288419716939937510582097494459 |
| b bool = true |
| ) |
| |
| |
| |
| const ( |
| c1=1 |
| c2 |
| c3 |
| c4="c44444" |
| c5 |
| ) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| const ( |
| f1="abc" |
| f2=len(f1) |
| f3=unsafe.Sizeof(f2) |
| |
| |
| |
| |
| |
| |
| func main() { |
| fmt.Println(f1) |
| fmt.Println(f2) |
| fmt.Println(f3) |
| } |
特殊变量
占位符 “_”
_, name := Person(18, "好嗨哦")