一、常用变量类型
boolean
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64
float32 float64
complex64 complex128
好啦,不用都记住了,其实
我们还是常用 boolean string int uint 这几个
况且这些东西,我们用的多了就会越来越熟悉了
其中 int uint 他们的占位 是根据系统架构来决定的,比如我的电脑是 64 位的,那么使用了 int 或者 uint 他们就会占用64位,系统架构是32位的亦然。
二、除了相同类型能够直接赋值,任何类型都不能够进行 隐式类型转换
,必须要进行显示类型转换才行
看例子就行了
例子1
package testvariable
import (
"fmt"
"testing"
)
func TestVariable(t *testing.T){
var a int32=1
var b int64
b=a
fmt.Println(a,b)
}
请注意,这样的写法是错的
int32 向 int64 进行转换是不可以滴
例子2
package testvariable
import(
"fmt"
"testing"
)
//使用 type 对 int64进行了别称
type MyInt int64
func TestVaraiable(t *testing.T){
var a MyInt=1
var b int64
b=a
fmt.Println(a,b)
}
然后再看看结果
所以,隐式转化就别想了,直接显示转化吧
package testvariable
import(
"fmt"
"testing"
)
func TestVariable(t *testing.T){
var a int32=1
var b int64
b=int64(a)
fmt.Println(a,b)
}
显示转化方法
三、指针
go 作为一个高级语言,其实有一个特点,就是它能够获得变量的指针,但是他仅仅只能获得,并不能对指针进行运算,这点其实就有点不爽了,毕竟 当初玩 C 的时候,改改单机游戏的“金币值”还是蛮爽的呢。
废话少说啦,来看看再程序中怎么去获得变量的指针呢?
无耻剧透:使用&(取值符)
即可
package testvariable
import(
"fmt"
"testing"
)
func TestVariable(t *testing.T){
a:=1
//获得 a 的地址
aPtr:=&a
fmt.Print(a,aPtr)
}
指针
现在我们尝试对指针进行运算,看看报什么错
不能和int 类型的数据做运算
指针告一段落
四、string
记住一点就行了,string 如果没有被赋值,那么他不是 nil(空)
,而是""
看示例吧
package testvariable
import(
"fmt"
"testing"
)
func TestVariable(t *testing.T){
var a string
fmt.Println("***"+a+"***")
fmt.Println(len(a))
if fmt==""{
fmt.Println("a是\"\"")
}else{
fmt.Println("a不为空")
}
}
string的初始空值
ok,第二篇记录就到这里,自勉
网友评论