值类型
- bool
- int(32 or 64), int8, int16, int32, int64
- uint(32 or 64), uint8(byte), uint16, uint32,uint64
- float32, float64
- string
- complex64, complex128
- array – 固定长度的数组
引用类型
- slice(切片)
- map
- chan
字符串
len()获取字符串长度
声明
var str string
str = “hello world”
str := “你好”
遍历
lengthStr := len(string2)
fmt.Println(lengthStr)
var stringVariables3 = "hello luboke,我齐恒三"
stringVariables3Len := len(stringVariables3)
fmt.Println(stringVariables3Len)
/*遍历*/
for index := 0; index < stringVariables3Len;index++ {
fmt.Printf("%c,%d\n",stringVariables3[index],stringVariables3[index])
}
for index,value := range string2 {
fmt.Printf("%c,%d\n",value,index)
}
复数
var x complex128 = complex(1, 2) //1+2i
var y complex128 = complex(3, 4) //3+4i
fmt.Println(x * y) //(-5+10i)
fmt.Println(real(x * y)) //-5
fmt.Println(imag(x * y))
类型转换
Parse 系列函数
Parse 系列函数用于将字符串转换为指定类型的值,其中包括 ParseBool()、ParseFloat()、ParseInt()、ParseUint()
Format 系列函数
Format 系列函数实现了将给定类型数据格式化为字符串类型的功能,其中包括 FormatBool()、FormatInt()、FormatUint()、FormatFloat()。
指针
程序在内存中存储它的值,每个内存块都 有一个地址,而存储这个地址的变量被称为指针变量,指针。
取地址操作符&,一般在指针操作当中经常使用,&取出地址
取值操作符*,一般在指针操作当中,*根据地址找该地址指向空间的值。
注意事项
- 值类型一般都有对应的指针类型,格式 数据的类型 比如int->int float64->*float64
- 0x开头的十六进制的一组数据
- go语言中引用类型有哪些?指针,slice,map,chan,interface
- 值类型:变量存储的值是值类型,通常在栈中分配
- 引用类型:变量存储的是地址,这个地址对应的空间存储的才是实际的值,一般引用类型在堆中分配,一旦无任何变量来引用这块空间,那么会被操作系统进行垃圾回收。
- go语言的指针没有指针运算,因为指针的乱引用会导致的内存泄漏,以及引发一连串程序的崩溃
- 修改指针指向变量的值,但是不会修改地址,通过指针改掉了指向变量对应的值
- 一个指针变量可以指向任何一个值的内存地址
- 指针也可以指向另一个指针,并且可以进行任意深度的嵌套,导致你可以有多级的间接引用,但在大多数情况这会使你的代码结构不清晰
10 .当一个指针被定义后没有分配到任何变量时,它的值为 nil。对一个空指针的反向引用是不合法的,并且会使程序崩溃