【Duke】数据类型 004 - PingPongGooo/GoFoundation GitHub Wiki
基本数据类型
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte //alias for uint8
rune // alias for int32, represents a Unicode Code point
float32 float64
complex64 complex128
类型转化
与其他主要编程语言的差异
- Go 语言不允许隐式类型转换
- 别名和原有类型也不能进行隐式类型转换
package type_test
import "testing"
type MyInt int64
func TestImplicit(t *testing.T) {
var a int = 1
var b int64
b = int64(a)
var c MyInt = MyInt(b)
t.Log(a,b,c)
}
类型的预定义值
1.math.MaxInt64
2.math.MaxFloat64
3.math.MaxUint32
指针类型
与其他主要编程语言的差异 1.不支持指针运算 2.string是值类型,其默认值的初始化值为空字符串,而不是nil
重要!!! string是值类型,其默认值的初始化值为空字符串,而不是nil
func TestPoint(t *testing.T) {
a:=1
aPtr := &a
t.Log(a,aPtr)
t.Logf("%T %T", a,aPtr)
//aPtr = aPtr + 1 //会编译报错。go 不支持 指针运算。
}
func TestString(t *testing.T) {
var s string // 默认值的初始化值为空字符串 ,而不是nil
t.Log("*"+s+"*")
t.Log(len(s))
}
Go不支持任何类型的隐式类型转换
Go支持指针,但是不支持指针运算
Go中string是值类型。默认初始化值是空字符串,而不是nil