登录
首页 >  Golang >  Go问答

将一个字节转换为字节的方法

来源:stackoverflow

时间:2024-02-22 12:36:24 337浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《将一个字节转换为字节的方法》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

如何在 go 中将单个字节转换为字节片?

我尝试过几种不同的方法,但没有一个有效。我不断收到错误消息:cannot conversion charbytes[i] (type byte) to type []byte

到目前为止,我找到的唯一工作方法是从字符串中获取字符,将其转换为字符串,然后将其重新转换为字节数组。

characters := "some text"    
for i := 0; len(characters); i++ {    
    var b []byte = []byte(string(characters[i]))    
    fmt.Println(b)
}

解决方案


这似乎是您真正想要做的事情:

    characters := "some text"
    for i := 0; i < len(characters); i++ {
        b := characters[i]
        fmt.println(b)
    }

您的代码很混乱(并且无法编译),但您似乎想要迭代字符串,并且对于当前所在的元素,将字符转换为字节并打印它。如果是这样,您不需要(或不想)将任何内容转换为 []byte

如果您不想逐字节迭代而是逐字符迭代,请使用 range 循环。它迭代 runes:

    characters := "søme spécial text"
    for _, r := range characters {
        char := string(r)
        b := []byte(char)
        fmt.println(char, b)
    }

Spec: Conversions 不允许将 byte 转换为 []byte。但是,您可以创建一个包含该单个字节的切片:

var value byte

data := []byte{value}

另请注意,在您的情况下,要获取包含第 ith 字节的切片,只需使用 slice expression

characters[i:i+1]

另外不要忘记索引 string 索引其 utf-8 字节序列,而不是 string 的符文,如果 string 包含编码为多个字节的符文(utf-8),这确实会产生影响.

如果您确实想迭代符文而不是字节,则可以使用 for .. range,或者您可以先将输入 string 转换为 []rune

本篇关于《将一个字节转换为字节的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>