定义变量
go语言定义变量支持类型推导 如 a := 2
a 的类型是int
var
关键字
var a int = 1
:=
只能在函数中定义变量
a := 1
集中定义变量
// 1. 在函数中使用 :=
a,b,c := 1,2,"3"
// 2. 在函数外 包内
var (
a=1
b=2
c="3"
)
内置变量类型
- 布尔型:
bool
- 只能声明为
true false
- 不能接受其他类型的赋值,包括(0, 1),也不支持自动或强制类型转换
- 只能声明为
- 字符串:
string
- 整型:
(u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr
- int 类型初始化默认为0
- 字符型:
byte,rune
- byte 对应 utf-8
- rune 对应 unicode
- 浮点型:
float32, float64
- 32 与64可相互转换
- 比较大小时最好先确定比较精度, 再比较大小
- 复数型:
complex64, complex128
- 分为实部 与虚部 , 64 类型为 float32 128 为64
欧拉公式cmplx.Pow(math.E, 1i * math.Pi) + 1
强制类型转换
var a, b int = 3, 4
// Sqrt 函数接收 float64 返回 float64 所以需要强制类型转换
var c int = int(math.Sqrt(float64(a*a+b*b)))
package main
import (
"fmt"
"strconv"
)
func main() {
tt1 := []string{"aaaa", "vvvvv", "dddd", "eeeee", "gfgggg"}
fmt.Println(tt1)
// 布尔转文本
// strconv.FormatBool(false)
// 文字转布尔 true 不能有其他文本 0 false 1 true
res, _ := strconv.ParseBool("1")
fmt.Println(res)
// 格式化 浮点型数字 会四舍五入
value := strconv.FormatFloat(1.55, 'f', 2, 64)
fmt.Println(value)
// 向后追加 int 、 bool
// strconv.AppendUint()
}
常量的定义
- 常量的定义使用
const
关键字定义const a = 3
类型推导 a 为 int 类型
枚举的定义
普通枚举
const(
cpp = 0
java = 1
python = 2
)
自增枚举
const(
got = iota
ptython
wget
)
// iota 可参与运算
const (
a = iota * 2
b
c
d
)
fmt.Println(a,b,c,d) // 0 2 4 6