本文共 2579 字,大约阅读时间需要 8 分钟。
基本数据类型和string的转换
在程序开发中,我们经常将数据类型转成string或者string转成基本数据类型基本类型转string类型
1、 fmt.Sprintf("%参数", 表达式) 【灵活】
函数介绍: func Sprintf(format string, a …interface{}) string // Sprintf根据format参数生成格式化的字符串并返回该字符串 参数需要和表达式的数据类型想匹配 fmt.Sprintf()… 会返回转换后的字符串2、使用strconv 包的函数
func FormatBool(b bool) string func FormatFloat64(f float64,fmt byte,prec,bitSize int) string func FormatInt(i int64,base int) string func FormatUnit(i unit64,base int) stringpackage mainimport ( "fmt" "strconv")func main() { var num1 int = 99 var num2 float64 = 23.456 var b bool = true var myChar byte = 'h' var str string //空的string // 使用第一种方式来转换 fmt.Sprintf方法 str = fmt.Sprintf("%d", num1) fmt.Printf("str type %T str=%q\n", str, str) str = fmt.Sprintf("%f", num2) fmt.Printf("str type %T str=%q\n", str, str) str = fmt.Sprintf("%t", b) fmt.Printf("str type %T str=%q\n", str, str) str = fmt.Sprintf("%c", myChar) fmt.Printf("str type %T str=%q\n", str, str) // 第二种方式 strconv 函数 var num3 int = 99 var num4 float64 = 23.456 var b2 bool = true var num5 int64 = 4567 str = strconv.FormatInt(int64(num3), 10) fmt.Printf("str type %T str=%q\n", str, str) // strconv.AppendFloat(num4, 'f', 10, 64) // 说明:'f' 格式 10:表示小数位保留10位 64:表示这个小数是float64 str = strconv.FormatFloat(num4, 'f', 10, 64) fmt.Printf("str type %T str=%q\n", str, str) str = strconv.FormatBool(b2) fmt.Printf("str type %T str=%q\n", str, str) str = strconv.Itoa(int(num5)) fmt.Printf("str type %T str=%q\n", str, str)}
string 类型转基本类型
使用时 strconv 包的函数 func ParseBool(str string)(value bool, err error) func ParseFloat(s string, bitSize int)(i int64, err error) func ParseInt(s string, base int, bitSize)(i int64, err error) func ParseUnint(s string, b int, bitSize int)(n unit64 err error)func main() { var str string = "true" var b bool // b, _ = strconv.ParseBool(str) // 说明: // 1、strconv.ParseBool(str) 函数会返回两个值 (value bool, err error) // 2、因为我只想获取到 value bool ,不想获取 err 所以我使用——忽略 b, _ = strconv.ParseBool(str) fmt.Printf("b type %T b=%v\n", b, b) var str2 string = "1234590" var n1 int64 var n2 int n1, _ = strconv.ParseInt(str2, 10, 64) n2 = int(n1) fmt.Printf("n1 type %T n1=%v\n", n1, n1) fmt.Printf("n2 type %T n2=%v\n", n2, n2) var str3 string = "123.456" var f1 float64 f1, _ = strconv.ParseFloat(str3, 64) fmt.Printf("f1 type %T f1=%v\n", f1, f1)}
string 转基本数据类型的注意事项
在将string 类型转成 基本数据类型时,要确保string类型能够转成有效的数据,比如 我把"123", 转成一个整数,但是不能把"hello" 转成一整数,如果这样做,Golang直接将其转成 0 ,其他类型也是一样的道理。 float => 0 bool => false
var str4 string = "hello"var n3 int64 = 11n3, _ = strconv.ParseInt(str4, 10, 64)fmt.Printf("n3 type %T n3=%v\n", n3, n3)
转载地址:http://ohqwi.baihongyu.com/