声明变量
声明单个变量
var i int=10
i := "rom"
声明多个变量
var n1,n2,n3 int
var (
n1="n1"
n2="n2"
)
n1,n2,n3 := 100,"jerry",'c'
不同类型之间不能互相更改
var i int = 10
i=15 // 可以更改
i=1.2 // 不可以更改 因为1.2不是int类型
查看变量的数据类型
var n1 = 100
fmt.Printf("n1的类型%T",n1)
数据类型
int类型
int类型中包含(u)int (u)int8 (u)int16 (u)int32 (u)int64(其中int默认字节数根据本身电脑是多少位来决定 电脑是64位那么int默认位int64 32默认位int32)
float类型
float32 和 float64
定义
var price = 1.23 // 浮点数 flaot64的精度比float32的精度要高 price默认的位数是float64位 开发中推荐使用float64位
类型转换 go中不支持自动转换 如果转换需要使用T(v)进行转换
var i int 32=100
var n1 float32 = float32(i)
细节问题 类型转换时候 本身的数据类型是不变的 如上例 float32(i) 只是把转换后的值赋值给了n1 n1的类型是float32 而i依旧是int32
小练习
var m1 int32=12
var m2 int64
var m3 int8
m2=int64(m1)+20
m3=int8(m1)+20
fmt.Printf("m1=%v,m2=%v,m3=%v",m1,m2,m3)
字符型
- var c1 byte=‘a’ // 注意字符型是单引号单个字符 占一个字节用byte定义就可以
如果要定义汉字 要是用int类型 因为一个汉字占3个字节
var c2 int=‘北’ - 输出时候使用%c输出的是字节本身 %v输出的是码值
fmt.Printf("%c,c3对应的码值为%d\n", c3,c3) - 字符可以进行运算
var n1='a'
var n2=n1+1
fmt.Println("运算结果\n",n1+10)
// 可以通过字符的计算能力 依次打印出各个英文字母
fmt.Printf("n1=%c",n2)
bool型
定义:
var b bool = true
string型
定义:
var str = “北京长城”
字符串一旦赋值就不能修改了 再go中字符串是不可变的
str[0]=‘w’ // 错误写法
还可以使用 `` 模板字符串来进行换行定义数组
var str2= `
我是第一行
我是第二行
`
字符串的拼接方式 + 号拼接
当一个字符串拼接操作很长时候可以分行写 + 号需要在上面
var pStr="hello"+
"world"+"my"+"hello"+
"world"+"my"+"hello"+
"world"+"my"+"hello"+
"world"+"my"