美文网首页golang 编程笔记
【golang】rune类型必知点

【golang】rune类型必知点

作者: dongzd | 来源:发表于2020-05-20 20:03 被阅读0次

    在看golang的源码包经常看到rune,一直和byte搞混淆。先来看看rune与byte区别:

    • byte 等同于int8,常用于处理ascii字符
    • rune等等同于int32,常用来处理unicode或者utf-8字符

    golang中的string底层由[]byte组成
    golang中默认编码是utf-8

    易错点

    1、在golang中的单引号表示字符,双引号表示的字符串,用单引号表示的字符,打印的是utf-8转换后的数值

    a := 'A'
    fmt.Println(a)
    
    65
    

    2、在golang里,中文字符在unicode下占2个字节,在utf-8下占3个字节

    a := "你好,china"
    fmt.Println(len(a))
    fmt.Println(len([]rune(a)))
    
    14
    8
    

    如果想得到字符串真正长度(一个中文字符一个长度),需转换为rune。

    相关文章

      网友评论

        本文标题:【golang】rune类型必知点

        本文链接:https://www.haomeiwen.com/subject/tpfoohtx.html