go中string类型转换为基本数据类型的方法

Posted goujian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go中string类型转换为基本数据类型的方法相关的知识,希望对你有一定的参考价值。

代码
// string类型转基本数据类型
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str1 := "false"
    var b bool
    // 函数ParseBool会返回两个值
    // "_"表示会忽略掉第二个返回值
    b, _ = strconv.ParseBool(str1)
    fmt.Printf("str1原值为%q, 转换为%T类型, 值为%v
", str1, b, b) // str1原值为"false", 转换为bool类型, 值为false

    str2 := "-100"
    var n1 int64
    // ParseInt函数中,第二个参数表示进制,第三个参数表示位数
    // 注意该函数的返回值为int64类型
    n1, _ = strconv.ParseInt(str2, 10, 64)
    fmt.Printf("str2原值为%q, 转换为%T类型, 值为%v
", str2, n1, n1) // str2原值为"-100", 转换为int64类型, 值为-100

    str3 := "128"
    var n2 uint8
    // n3的类型是uint64
    n3, _ := strconv.ParseUint(str3, 10, 64)
    n2 = uint8(n3)
    fmt.Printf("str3原值为%q, 转换为%T类型, 值为%v
", str3, n2, n2) // str3原值为"128", 转换为uint8类型, 值为128

    str4 := "-3.141592678"
    var f1 float32
    // f2的类型为float64
    f2, _ := strconv.ParseFloat(str4, 64)
    f1 = float32(f2)
    // 注意转换之后精度有损失
    fmt.Printf("str4原值为%q, 转换为%T类型, 值为%v
", str4, f1, f1) // str4原值为"-3.141592678", 转换为float32类型, 值为-3.1415927

    // 要确保string类型能够转换成有效的数据,否则会被转换成对应类型的默认值,
    // 比如:字符串"today"被转换为整数后值为0,转换成浮点数值为0,转换成布尔值为false。
    str5 := "today"
    c1, _ := strconv.ParseInt(str5, 10, 64)
    fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v
", str5, c1, c1) // str5原值为"today", 转换为int64类型, 值为0
    c2, _ := strconv.ParseFloat(str5, 64)
    fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v
", str5, c2, c2) // str5原值为"today", 转换为float64类型, 值为0
    c3, _ := strconv.ParseBool(str5)
    fmt.Printf("str5原值为%q, 转换为%T类型, 值为%v
", str5, c3, c3) // str5原值为"today", 转换为bool类型, 值为false

    str6 := "711today"
    c4, _ := strconv.ParseInt(str6, 10, 64)
    fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v
", str6, c4, c4) // str6原值为"711today", 转换为int64类型, 值为0
    c5, _ := strconv.ParseFloat(str6, 64)
    fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v
", str6, c5, c5) // str6原值为"711today", 转换为float64类型, 值为0
    c6, _ := strconv.ParseBool(str6)
    fmt.Printf("str6原值为%q, 转换为%T类型, 值为%v
", str6, c6, c6) // str6原值为"711today", 转换为bool类型, 值为false
}
总结

技术图片

查看源代码

以上是关于go中string类型转换为基本数据类型的方法的主要内容,如果未能解决你的问题,请参考以下文章

go语言之字符串类型转换string和基本数据类型相互转换

Go 语言 Strconv 库常用方法

Go 数据类型转换

java大神 字符串的转换基本数据类型

java中如何进行字符串和数据类型的转换?

基本数据类型和String相互转换