• golang数据类型值之字符串


    1、go中字符串只能用双引号或反引号(``)号包裹,双引号里的转义字符可以被正确识别,反引号则不能。因此可用反引号输出代码。

    2、字符串一旦赋值后就不能修改内容,例如 str:="abc" 要被修改改成 “bbc” ,这样操作str[0] = "b"是错误的

    3、 字符串的拼接用“+”,但是如果有换行加号必须位于上一行的行尾才可以

    4、基本类型之间的互相转换必须是显式的,即只能通过类型转换函数(byte()、int64()等)来转换

    5、基本类型转字符串,有两种方式,一是用fmt包里的Sprintf()函数转换,另一种是用strconv包里的对应函数例如 FormatInt()、FormatFloat()、FormatBool()等,具体使用见如下代码

        

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        //基本类型转字符串类型
        var a int64 = -100
        var b float32 = 20.555
        var boolen bool = true
        var c byte = 'h'
    
        var str string
        str = fmt.Sprintf("%d", a)
        fmt.Printf("str type is %T str=%q
    ", str, str)
    
        str = fmt.Sprintf("%.2f", b)
        fmt.Printf("str type is %T str=%q
    ", str, str)
    
        str = fmt.Sprintf("%t", boolen)
        fmt.Printf("str type is %T str=%q
    ", str, str)
    
        str = fmt.Sprintf("%c", c)
        fmt.Printf("str type is %T str=%q
    ", str, str)
    
        //strconv包
        str = strconv.FormatInt(a, 10)
        fmt.Printf("str type is %T str=%q
    ", str, str)
        str = strconv.FormatFloat(float64(b), 'f', 5, 64)
        fmt.Printf("str type is %T str=%q
    ", str, str)
        str = strconv.FormatBool(boolen)
        fmt.Printf("str type is %T str=%q", str, str)
        str = strconv.FormatUint(uint64(c), 10)
        fmt.Printf("str type is %T str=%q
    ", str, str)
    
        //ItoA函数将一个int类型数字转换位字符串
        str = strconv.Itoa(int(a))
        fmt.Printf("str type is %T str=%q", str, str)
    
    }

     6、将字符串转换为基本类型,使用strconv包中的ParseInt()、ParseFloat()、ParseBool()等函数,具体用法如下示例

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        //字符串转基本类型
        var b bool
        var str1 string = "true"
    
        b, _ = strconv.ParseBool(str1)
        fmt.Printf("b type is %T, b=%v
    ", b, b)
    
        var str2 = "2345"
        var n1 int64
        //ParseInt函数第三个参数并不能决定输出的数据类型
        //从函数的源码可知最终的返回值都被转为int64,故显式的指定n1的类型必须用int64
        //而bitSize会决定这个返回值在转为int64前的类型,故可能会出现溢出
        n1, _ = strconv.ParseInt(str2, 10, 32)
        fmt.Printf("i type is %T, i=%v
    ", n1, n1)
    
        var str3 = "33.34"
        var f float64
        f, _ = strconv.ParseFloat(str3, 64)
        fmt.Printf("f type is %T, f=%v
    ", f, f)
    }
  • 相关阅读:
    超强、超详细Redis入门教程
    zsh: command not found: pip 解决方法
    Python 进阶必备函数
    【debian】解决debian中文安装后出现乱码的问题
    【随笔】关于服务器
    【随笔】Linux主机简单判断CC攻击的命令
    【Docker】通过cookie欺骗在ubuntu中使用wget下载jdk
    【linux】在ubuntu中使用apt-get安装oracle jdk6
    【Nginx】关于域名转发proxy_pass
    【Docker】制作一个支持SSH终端登录的镜像
  • 原文地址:https://www.cnblogs.com/bwkj/p/13123651.html
Copyright © 2020-2023  润新知