Go 学习笔记 类型转换

Go 学习笔记 类型转换

Go 语言是一种强类型语言,不同类型的变量不能自动转换,必须进行显式转换。

在Go中,基本类型(int、float64、string 等) 可以通过显式转换进行转换

目标类型(变量)
package main

import "fmt"

func main() {
	//类型转换,整形与浮点型
	var a int8 = 20
	var b int16 = 40

	fmt.Println(int16(a) + b)

	//浮点型
	var c float32 = 30
	var d float64 = 40

	fmt.Println(float64(c) + d)

	//浮点型与整型
	var h float32 = 40.24
	var g int = 50

	fmt.Println(h + float32(g))
	//从低位转换为高位

}

使用strconv 进行类型转换

数字与字符串的转换使用strconv包

方法	说明
strconv.Itoa(int)	整数转字符串
strconv.FormatFloat(float64, 格式, 小数位数, 位数)	浮点数转字符串
package main

import (
	"fmt"
	"strconv"
)

func main() {
	
	//通过strconv  把其他类型转换为string 类型
	var i int = 20
	str1 := strconv.FormatInt(int64(i), 10)
	fmt.Printf("值: %v 类型: %T\n", str1, str1)

	//
	var f float32 = 20.23
	var str2 = strconv.FormatFloat(float64(f), 'f', 4, 64)
	fmt.Printf("值: %v 类型:%T\n", str2, str2)
	
	
}
strconv.Atoi(string)	字符串转整数
strconv.ParseFloat(string, 64)	字符串转 float64
strconv.ParseInt(string, 10, 64)	字符串转 int64
package main

import (
	"fmt"
	"strconv"
)

func main() {

	/*
	 ParseInt 
	 参数1: string 数据
	 参数2: 进制  
	 参数3: 位数 32 64 16 
	 */
	
	str := "xxxx"
	num, _ := strconv.ParseInt(str, 10, 64)
	fmt.Printf("%v--%T", num, num)
}