前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言中的byte和rune区别、对比

Go语言中的byte和rune区别、对比

作者头像
sunsky
发布2020-08-20 14:44:12
4520
发布2020-08-20 14:44:12
举报
文章被收录于专栏:sunskysunsky

Go语言中byterune实质上就是uint8int32类型。byte用来强调数据是raw data,而不是数字;而rune用来表示Unicodecode point。参考规范

代码语言:javascript
复制
uint8       the set of all unsigned  8-bit integers (0 to 255)
int32       the set of all signed 32-bit integers (-2147483648 to 2147483647)

byte        alias for uint8
rune        alias for int32

可以通过下面程序验证:

代码语言:javascript
复制
package main

import "fmt"

func byteSlice(b []byte) []byte {
    return b
}

func runeSlice(r []rune) []rune {
    return r
}

func main() {
    b := []byte{0, 1}
    u8 := []uint8{2, 3}
    fmt.Printf("%T %T \n", b, u8)
    fmt.Println(byteSlice(b))
    fmt.Println(byteSlice(u8))

    r := []rune{4, 5}
    i32 := []int32{6, 7}
    fmt.Printf("%T %T \n", r, i32)
    fmt.Println(runeSlice(r))
    fmt.Println(runeSlice(i32))
}

执行结果如下:

代码语言:javascript
复制
[]uint8 []uint8
[0 1]
[2 3]
[]int32 []int32
[4 5]
[6 7]
代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    var indexRuneTests = []struct {
        s    string
        rune rune
        out  int
    }{
        //string用反引号能换行, 但不支持转义, rune是一个uint32,即一个unicode字符
        {`as\n
        df`, 'A', 2},
        //用双引号不能换行, 但支持转义如"\n\t..",  rune是一个uint32,即一个unicode字符
        {"some_text\n=some_value", '=', 9},
        {"☺a", '☺', 3},
        {"a☻☺b", '☺', 4},
    }

    fmt.Println("Hello, playground",indexRuneTests)
}
代码语言:javascript
复制
Hello, playground [{as\n
        df 65 2} {some_text
=some_value 61 9} {☺a 9786 3} {a☻☺b 9786 4}]

参考资料: Difference between []uint8 && []byte (Golang Slices)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Go语言中byte和rune实质上就是uint8和int32类型。byte用来强调数据是raw data,而不是数字;而rune用来表示Unicode的code point。参考规范:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档