golang:[]byte转string

golang:[]byte转stringgolang中,字符切片[]byte转换成string最简单的方式是packagemainimport(“fmt”_”unsafe”)funcmain(){bytes:=[]byte(“Iambytearray!”)str:=string(bytes)bytes[0]=’i’//注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化,fmt.Println(str)}打印信息:I

大家好,又见面了,我是你们的朋友全栈君。

golang中,字符切片[]byte转换成string最简单的方式是

package main
 
import (
    "fmt"
    _ "unsafe"
)
 
func main() { 
   
    bytes := []byte("I am byte array !")
    str := string(bytes)
    bytes[0] = 'i'//注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化,
    fmt.Println(str)
}

打印信息:I am byte array !

上面的代码bytes在这里修改了数据,但是str打印出来的依然没变化,是因为[]byte的内存被拷贝了。接着看下面的代码

package main
 
import (
    "fmt"
    "unsafe"
)
 
func main() { 
   
    bytes := []byte("I am byte array !")
    str := (*string)(unsafe.Pointer(&bytes))
    bytes[0] = 'i'
    fmt.Println(*str)
}

打印信息:i am byte array !

现在打印出来的信息已经是改变过的了,现在可以看出来str和bytes共用一片内存。

这样做的意义在于,在网络通信中,大多数的接受方式都是[]byte,如果[]byte的数据比较大,内存拷贝的话会影响系统的性能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • latex中希腊字母_LaTeX怎么念

    latex中希腊字母_LaTeX怎么念日常写论文,ppt作汇报等,经常需要编写公式,为方便查阅希腊字母对应latex表示,特写此表格,以便大家查阅。小写 Latex表示 大写 Latex表示 \alpha A A \beta B B \gamma \Gamma \delta \Delta \epsilon …

    2022年10月13日
    2
  • es 其实是不是就是数据库_初识ES数据库「建议收藏」

    es 其实是不是就是数据库_初识ES数据库「建议收藏」一、什么是Elasticsearch1、概念以及特点1、Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用RestfulAPI标准的可扩展和高可用的实时数据分析的全文搜索工具。2、可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一…

    2022年5月30日
    91
  • hashlib加密「建议收藏」

    hashlib加密「建议收藏」加密算法介绍HASHHash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。…

    2022年4月30日
    55
  • tl494cn逆变器电路图_用TL494制作的逆变电源[通俗易懂]

    tl494cn逆变器电路图_用TL494制作的逆变电源[通俗易懂]TL494集成块广泛应用在开关电源,其内部集成有PWM、三角波发生器、电池欠压检测,+5V电压基准等电路,具有外接元件少,控制稳定的特点。笔者在网上查阅大量资料,自制了一款准正弦波300W逆变器,采用直流12V电瓶供电,可供小功率单相电机、日光灯等电感性负载用电,电路如附图所示。该逆变板工作频率由TL494⑤、⑥脚外接阻容元件确定,本例为2.2kHz左右。该频率的大小直接影响功率场效应管的功率损耗…

    2022年6月3日
    157
  • 平庸前端码农之蜕变 — AST

    平庸前端码农之蜕变 — AST前言首先,先说明下该文章是译文,原文出自《ASTforJavaScriptdevelopers》。很少花时间特地翻译一篇文章,咬文嚼字是件很累的事情,实在是这篇写的太棒了,所以忍不住想和大家一起分享。该译文出自我的博客:github.com/CodeLittleP…,我的博客会不定时更新各种类型文章,希望大家支持。OK,我们直接进入正题。为什么要谈AST(抽象语法树)?如果你查看目…

    2022年7月21日
    13
  • asp.net dropdownlist的值怎么设置_redis skiplist

    asp.net dropdownlist的值怎么设置_redis skiplistList productlist = ProductAdapter.Instance.GetList();dlproductname.DataSource = productlist;dlproductname.DataTextField = “ProductName”;dlproductname.DataValueField = “id”;dlproduc

    2022年10月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号