GO语言学习入门笔记系列详解(二):Go的变量和常量定义
变量定义
- var关键字:说明是一个变量
- 变量名在前,变量类型在后
函数内定义变量
1
2
3
4
5
6
7
8
9
10func variableZeroValue() { //变量名在前,变量类型在后 var a int var s string //go语言的变量一定会有一个初始值 //int类型初值是0 //string类型的初值是"",使用%q可以将空字符串打出来 fmt.Printf("%d %qn", a, s) }
- go语言函数内的变量一旦定义,就必须使用
1
2
3
4
5
6
7
8func variableValueInit() { //自定义赋初值 var a, b int = 3, 4 var s string = "abc" //go语言的变量一旦定义就必须使用 fmt.Println(a, b, s) }
- 可以不规定变量类型,可以写在一行,会自动识别
1
2
3
4
5func variableTypeDeduction() { var a, b, c, s = 3, 4, true, "def" fmt.Println(a, b, c, s) }
- 函数内定义变量简略写法,用
:=
表示定义一个变量
1
2
3
4
5
6
7
8func variableShorter() { //第一次变量定义可以使用:= a, b, c, s := 3, 4, true, "def" //之后重新复制不可以 a = 5 fmt.Println(a, b, c, s) }
函数外定义变量
- 可以省略类型,但是不能用
:=
来赋初值
1
2
3
4
5//叫做包内变量 var aa = 3 var ss = "hello you" var bb = true
- 简单写法
1
2
3
4
5
6
7//变量定义 var ( aa = 3 ss = "hello you" bb = true )
内建变量类型
变量的类型
-
bool和string
-
整型int,前面加u表示无符号,后面的数字表示规定的长度
uintptr表示指针,这个指针的长度跟随系统
1
2(u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr
- byte和rune(长度是32位,相当于char类型)
- float32,float64,complex64,complex128(complex表示复数)
复数回顾
e i φ = cos φ + i sin φ ∣ e i φ ∣ = cos 2 φ + sin 2 φ = 1 e 0 = 1 , e i π 2 = i e i π = − 1 , e i i 2 π = − i , e i 2 π = 1 begin{aligned} &e^{i varphi}=cos varphi+i sin varphi \ &left|e^{i varphi}right|=sqrt{cos ^{2} varphi+sin ^{2} varphi}=1 \ &e^{0}=1, e^{i frac{pi}{2}}=i \ &e^{i pi}=-1, e^{i frac{i}{2} pi}=-i, e^{i 2 pi}=1 end{aligned} eiφ=cosφ+isinφ∣∣eiφ∣∣=cos2φ+sin2φ=1e0=1,ei2π=ieiπ=−1,ei2iπ=−i,ei2π=1
Go语言如何表示复数
1
2
3
4
5
6func euler() { //不能写成4*i,会认为i是一个没有定义的变量 c := 3 + 4i fmt.Println(cmplx.Abs(c)) }
强制类型转换
-
类型转换是强制的
-
举例子:验证勾股定理
var a,b int = 3,4
var c int = math.Sqrt(a*a + b*b)
1
2
3
4
5
6
7func triangle() { var a , b int = 3,4 var c int c = int(math.Sqrt(float64(a*a + b*b))) fmt.Println(c) }
常量与枚举
常量定义
常量相当于一个文本替换的动作。
1
2
3
4
5
6
7
8func constants() { const fliename = "abc.txt" const a , b = 3,4 var c int c = int(math.Sqrt(a*a + b*b)) fmt.Println(filename,c) }
常量的定义也可以使用括号
1
2
3
4
5
6
7
8
9
10func constants() { const ( fliename = "abc.txt" a, b = 3, 4 ) var c int c = int(math.Sqrt(a*a + b*b)) fmt.Println(c) }
枚举定义
- 没有自增
1
2
3
4
5
6
7
8
9
10func enums() { const ( cpp = 0 java = 1 python = 2 golang = 3 ) fmt.Println(cpp, java, python, golang) }
- 带有自增
1
2
3
4
5
6
7const ( cpp = iota java python golang )
- iota可以作为自增量
1
2
3
4
5
6
7
8
9//iota可以作为自增值 const ( b = 1 << (10 * iota) kb mb gb db )
最后
以上就是冷酷奇异果最近收集整理的关于GO语言学习入门笔记系列详解(二):Go的变量和常量定义GO语言学习入门笔记系列详解(二):Go的变量和常量定义的全部内容,更多相关GO语言学习入门笔记系列详解(二):Go内容请搜索靠谱客的其他文章。
发表评论 取消回复