go语言里面的数据类型
查看数据类型和字节数
package main
import (
"fmt"
"unsafe"
)
func main() {
var n1 = 100
//查看某一个数的数据类型,可以使用
fmt.Printf("类型为 %T ", n1)
//查看某一个变量占用字节的大小
fmt.Printf("类型为 %T ,字节数%d", n1, unsafe.Sizeof(n1))
}
结果:
基本类型转换为string:
package main
import (
"fmt"
"strconv"
)
func main() {
//基本类型转换为string
//第一种方法,利用fmt.Sprintf转换
var a int = 99
var b float32 = 10.11
var c bool = true
var d byte = 'a'
var str string
str = fmt.Sprintf(" %d ", a)
fmt.Printf("type=%T str=%q\n", str, str)
str = fmt.Sprintf("%f", b)
fmt.Printf("type=%T str=%q\n", str, str)
str = fmt.Sprintf("%t", c)
fmt.Printf("type=%T str=%q\n", str, str)
str = fmt.Sprintf("%c", d)
fmt.Printf("type=%T str=%q\n", str, str)
//第二种 strconv 函数
var num1 int = 101
var num2 float64 = 10.222
var num3 bool = false
//对于下面这个函数的调用,其中第一个参数必须是int64类型的
str = strconv.FormatInt(int64(num1), 10)
fmt.Printf("type=%T str=%q\n", str, str)
//下面这个函数的调用,第一个是参数,第二个是表示方式(有以科学计数法分类的),第三个是小数点后的位数,第四个是float的位数
str = strconv.FormatFloat(num2, 'f', 10, 64)
fmt.Printf("type=%T str=%q\n", str, str)
str = strconv.FormatBool(num3)
fmt.Printf("type=%T str=%q\n", str, str)
}
结果:
string类型转为基本类型:
package main
import (
"fmt"
"strconv"
)
func main() {
//string类型变为基本类型
var str string = "true"
var b bool
//使用下面的函数将string变为bool
b, _ = strconv.ParseBool(str)
fmt.Printf("type=%T,b=%v\n", b, b)
//变为int类型
//下面函数中注意第二个参数含义:转为几进制,第三个为变为int32或者int64等
var str2 string = "12345"
var n1 int64
n1, _ = strconv.ParseInt(str2, 10, 64)
fmt.Printf("type=%T,b=%v\n", n1, n1)
//转为float
var str3 = "1234.2344"
var f1 float64
f1, _ = strconv.ParseFloat(str3, 64)
fmt.Printf("type=%T,b=%v\n", f1, f1)
}
结果: