Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > golang byte和rune

golang中byte和rune用法及新手易错点总结

作者:jinchenga

golang内置类型有rune类型和byte类型,下面这篇文章主要给大家介绍了关于golang中byte和rune用法及新手易错点总结的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1 总体区别

在Golang中,byte和rune是两种不同类型的数据。简单来说,byte是一个8位的无符号整数类型,而rune则是一个32位的Unicode字符类型

总的来说,byte用于表示单个字节的数据,而rune用于表示Unicode字符,可以更好地支持多语言和复杂的文本处理。

2 常见错误

笔者在刷leecode在处理纯ASCII字符的时候,常常分不清什么时候用rune,什么时候用byte。便用一下代码总结。
如以下题目:

// 在不考虑效率的情况下,只是为了单纯的说明什么时候用rune,什么时候用byte
func isAnagram(s, t string) bool {
    if len(s) != len(t) {
        return false
    }
    sByte := []byte(s)
    // sByte 是byte类型的数组,所以数组内每个子元素都是byte类型的
    sMap := make(map[byte]int)
    for _, b := range sByte {
        sMap[b]++
    }
    // 而t是string类型,所以此时返回的b其实是Unicode字符,可以理解为rune类型
    // 所以此时b就需要类型转换为byte
    for _, b := range t {
        if sMap[byte(b)] <= 0 {
            return false
        }
        sMap[byte(b)]--
    }
    return true
}

总结 

到此这篇关于golang中byte和rune用法及新手易错点总结的文章就介绍到这了,更多相关golang byte和rune内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文