01.数字类型
1.1 Golang数据类型介绍
Go 语言中数据类型分为 :基本数据类型和复合数据类型基本数据类型有:
复合数据类型有:
数组、切片、结构体、函数、map、通道(channel)、接口
1.2 整型分为两大类
有符号整形按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
关于字节:
字节也叫 Byte,是计算机数据的基本存储单位。8bit(位)=1Byte(字节) 1024Byte(字节)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 。在电脑里一个中文字是占两个字节的。
1.3 unsafe.Sizeof
unsafe.Sizeof(n1) 是 unsafe 包的一个函数,可以返回 n1 变量占用的字节数
package main
import (
"fmt"
"unsafe"
)
func main ( ) {
var a int8 = 124
fmt. Printf ( "%T\n" , a)
fmt. Println ( unsafe. Sizeof ( a) )
}
1.4 int不同长度直接的转换
package main
import (
"fmt"
)
func main ( ) {
var num1 int8
num1 = 127
num2 := int32 ( num1)
fmt. Printf ( "值:%v 类型%T" , num2, num2)
}
1.5 浮点型
Go 语言支持两种浮点型数:float32 和 float64
package main
import (
"fmt"
"math"
)
func main ( ) {
fmt. Printf ( "%f\n" , math. Pi)
fmt. Printf ( "%.2f\n" , math. Pi)
}
1.6 reflect.TypeOf查看数据类型
package main
import (
"fmt"
"reflect"
)
func main ( ) {
c := 10
fmt. Println ( reflect. TypeOf ( c) )
}
02.int互转
2.0 int常用转换
package main
import (
"fmt"
"strconv"
)
func main ( ) {
intV, _ := strconv. Atoi ( "123456" )
int64V, _ := strconv. ParseInt ( "123456" , 10 , 64 )
strS := strconv. Itoa ( 123 )
var tmp int64 = 123
str64S:= strconv. FormatInt ( tmp, 10 )
fmt. Printf ( "%T--%T--%T--%T" , intV, int64V, strS, str64S)
}
2.1 int8转int16
package main
import "fmt"
func main ( ) {
var a int8 = 20
var b int16 = 40
var c = int16 ( a) + b
fmt. Printf ( "值:%v--类型%T" , c, c)
}
2.2 int16转float32
package main
import "fmt"
func main ( ) {
var a float32 = 3.2
var b int16 = 6
var c = a + float32 ( b)
fmt. Printf ( "值:%v--类型%T" , c, c)
}
2.3 math.Sqrt强转
package main
import (
"fmt"
"math"
)
func main ( ) {
var a, b = 3 , 4
var c int
c = int ( math. Sqrt ( float64 ( a* a + b* b) ) )
fmt. Println ( c)
}
03.int与str转换
3.1 int与str转换
package main
import (
"fmt"
"strconv"
)
func main ( ) {
var num2 int64 = 123456
str2 := strconv. FormatInt ( num2, 10 )
fmt. Printf ( "%v---%T \n" , str2, str2)
v1, _ := strconv. ParseFloat ( str2, 64 )
fmt. Printf ( "%v---%T\n" , v1, v1)
}
3.2 str与int64转换
package main
import (
"fmt"
"strconv"
)
func main ( ) {
num1 := 123456
str1 := strconv. Itoa ( num1)
fmt. Printf ( "%v---%T \n" , str1, str1)
_int, err := strconv. Atoi ( str1)
fmt. Println ( _int, err)
fmt. Printf ( "%v---%T\n" , _int, _int)
var num2 int64 = 123456
str2 := strconv. FormatInt ( num2, 10 )
fmt. Printf ( "%v---%T \n" , str2, str2)
v1, _ := strconv. ParseFloat ( str2, 64 )
fmt. Printf ( "%v---%T\n" , v1, v1)
}
04.布尔值
Go 语言中以 bool 类型进行声明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。 注意:
1.布尔类型变量的默认值为 false。 2.Go 语言中不允许将整型强制转换为布尔型. 3.布尔型无法参与数值运算,也无法与其他类型进行转换。
package main
import (
"fmt"
"unsafe"
)
func main ( ) {
var b = true
fmt. Println ( b, "占用字节:" , unsafe. Sizeof ( b) )
}