首页 > 其他分享 >golang 字节级操作和字符串的区别与转换 []byte(message)

golang 字节级操作和字符串的区别与转换 []byte(message)

时间:2024-06-12 21:36:45浏览次数:23  
标签:字符 字节 二进制 golang 字符串 操作 byte message

 

[]byte(message) 将字符串 message 转换为一个字节切片( []byte )。

在Go语言中,字符串是不可变的,而字节切片可以被修改。

这种转换常用于处理字符串的字节级操作,如编码、解码或写入IO流。

 

字节级操作 和 字符串操作 在编程中有本质的不同,主要体现在以下几个方面:

1. 数据单位:

  字符串(String):由字符组成,每个字符可以是一个字母、数字、符号或者特定的 Unicode 码点。字符串操作关注的是文本及其表现形式

  字节串(Byte Slice 或 Bytes):由字节(Bytes)组成,每个字节是 8位的二进制数据,能够表示 0-255 之间的整数值。字节级操作关注的是数据的二进制表示和处理

 

2. 编码意识:

  字符串通常隐含了某种字符编码(如UTF-8, UTF-16等),用于将字符映射到字节序列或反之。

  字节串则是原始的二进制数据,不直接关联特定字符编码,除非在上下文中明确指定。

 

3. 可变性:

  在Go语言中,字符串是不可变的,一旦创建就不能修改其内容。

  字节切片([]byte)是可变的,可以通过索引和切片操作来修改其内容。

 

4. 操作方法:

  字符串提供了诸如拼接、查找、替换等文本处理方法
  字节串虽然也有类似的操作接口,但更多用于处理二进制数据,如文件I/O、网络通信、图像音频处理等。

 

5. 转换:

  从字符串到字节串【如使用 []byte("text") 或 string.Bytes() 】是为了 进行二进制操作或传输
  从字节串到字符串【如使用string(bytes)或解码函数】是为了 解读二进制数据为文本

 

6. 用途:

  字符串常用于文本处理逻辑,如用户界面展示、文本分析等。
  字节串则广泛应用于底层数据处理,如文件读写、网络数据包构造与解析、序列化与反序列化等。

 

总结来说,选择字节级操作还是字符串操作取决于具体需求:

处理文本和字符逻辑时使用字符串,而涉及二进制数据或需要进行低级别数据操控时,则应使用字节串。

 

Link:https://www.cnblogs.com/farwish/p/18237660

标签:字符,字节,二进制,golang,字符串,操作,byte,message
From: https://www.cnblogs.com/farwish/p/18237660

相关文章

  • golang sync.Map 与使用普通的 map 的区别
     使用sync.Map与普通的Gomap主要有以下几点区别:1.并发安全性普通map:在没有外部同步的情况下,不是并发安全的。在多goroutine访问时,如果没有适当的锁或其他同步机制保护,可能会导致数据竞争和未定义行为。sync.Map:是并发安全的。它内部实现了必要的同步机制,允许多......
  • Netty数据传输载体ByteBuf
    原文链接:https://www.cnblogs.com/wuweishuo/p/10854421.htmlNetty中读写以ByteBuf为载体进行交互ByteBuf的结构ByteBuf以readerIndex和writerIndex划分为三块区域,废弃字节,可读字节,可写字节。每次从ByteBuf读取一个字节时readerIndex+1,写入一个字节时writerIndex+1。废弃......
  • 检查字符串的byte[]是什么编码字符集
    引入依赖<dependency><groupId>com.googlecode.juniversalchardet</groupId><artifactId>juniversalchardet</artifactId><version>1.0.3</version></dependency>包装......
  • 【CMake系列】03-cmake 注释、常用指令 message、set、file、for_each、流程控制if
    本文给出了cmake中的一些常用的指令,可以快速了解,为后面的内容深入打点基础。本专栏的详细实践代码全部放在github上,欢迎star!!!如有问题,欢迎留言、或加群【392784757】交流注释#行注释#[[多行注释]]message(""#[[这里也可以注释]]"")message在学习时......
  • 从游戏场景看,ByteHouse存算分离架构如何实现降本增效
    经过几十年发展,中国游戏产业逐步迈向成熟与稳健的新阶段。 根据中国音数协游戏工委的数据,2023年,中国移动游戏用户规模达6.57亿人,同比增速小幅增长。在商业模式层面,除了传统的广告投放和付费会员制度外,一些游戏公司还引入了电商直播、虚拟礼物销售等新的商业模式,以提高用户粘性......
  • 【解决了一个小问题】因为镜像证书的问题,golang http client出现错误 `tls: failed to
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯一个服务使用Docker打包镜像,部署到k8s后出现如下的错误信息:tls:failedtoverifycertificate:x509:certificatesignedbyunknownauthority出错的位置是......
  • golang json字符串转结构体
    腐汝 博客园首页新随笔联系订阅管理随笔-168  文章-0  评论-2  阅读- 89497golangjson字符串转结构体 1、不知道结构体类型的情况下funcJsonStringToMap(jsonStrstring)(map[string]interface{},error){//未知值类型......
  • 飞书golang 发送机器人结构定义
    飞书golang发送机器人结构定义在Golang中,可以定义一个结构体来表示飞书(Feishu)机器人的数据。以下是一个简单的示例,展示了如何定义用于发送消息到飞书机器人的结构体:  packagemain import("bytes""encoding/json""fmt""net/http") //FeishuRobotPayl......
  • The field file exceeds its maximum permitted size of 1048576 bytes
    问题—基于Springboot项目,文件上传功能报错Causedby:Thefieldfileexceedsitsmaximumpermittedsizeof1048576bytes.文件的大小超出了允许的范围。错误原因SpringBoot内嵌的Tomcat默认的所有上传的文件大小为1MB,超出这个大小就会报错,解决这个问题需要更改以下......
  • golang sync.Once 保证某个动作仅执行一次的机制
     typeOncestruct{doneatomic.Uint32mMutex} 这段代码是Go语言标准库中sync包的一部分,定义了一个Once类型。Once类型用于确保某个函数只被执行一次。它包含一个done原子类型和一个Mutex互斥锁。  done表示动作是否已经执行过,它被放置在结构......