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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 交叉线 与 直通线

    交叉线 与 直通线交叉线  交叉线:又叫反线,线序按照一端568B,一端568A的标准排列好线序,并用RJ45水晶头夹好。      具体的线序制作方法是:一端采用568B(即白橙,橙,白绿,蓝,白蓝,绿,白棕,棕的顺序)做线标准不变,另一端在这个基础上将这八根线中的1,3号线和2,6号线互换一下位置,这时网线的线序就变成了:1、白绿、2、绿、3、白橙、4、蓝、5、白蓝、6、橙、7、白棕、8、棕(即正线的1,

    2022年6月19日
    26
  • K-fold cross-validation_validation

    K-fold cross-validation_validationKFold是sklearn中用来做交叉检验的,在sklearn的版本升级中,KFold被挪了地方。在sklearn0.18及以上的版本中,sklearn.cross_validation包被废弃,KFold被挪到了sklearn.model_selection中,本来以为挪就挪了,用法没变就行,结果,,谁用谁知道。cross_validation.KFold与model_selecti…

    2026年2月2日
    5
  • SQL 笛卡尔积现象

    SQL 笛卡尔积现象笛卡尔积的出现是在多表进行联合查询的时候会出现的一种情况。比如有两张表:表一:表二:在进行查询的时候:selectstudentname,SubjectnamefromStudent,subject会出现下面的情形,也就是笛卡尔现象,表一有5条记录,表二有3条记录,那么对于第一张表而言有5种选择,而对于第二张表来说有3种选择。所以结果就是5*3种选…

    2022年7月27日
    9
  • 2020职称计算机题库和答案,2020职称计算机考试PowerPoint习题及答案1

    2020职称计算机题库和答案,2020职称计算机考试PowerPoint习题及答案1

    2021年11月28日
    56
  • idealC-2021.5 x64激活码(最新序列号破解)

    idealC-2021.5 x64激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    109
  • java jks 转pfx_JKS和PFX文件相互转换方法「建议收藏」

    java jks 转pfx_JKS和PFX文件相互转换方法「建议收藏」JKS(JavaKeysotre)格式和PFX(PKCS12)格式,是最常见的SSL证书格式文件,可以包含完整的证书密钥对,证书链和信任证书信息。PFX常用于WindowsIIS服务器,JKS常用语JAVA类的WEB服务器,如TOMCAT,WEBLOGIC,JBOSS,RESIGN,虽然近年来,这些服务器新的版本,都是可以同时支持PFX,JKS文件格式了,但是老的版本和免费版本,往往都只支持JK…

    2022年5月1日
    146

发表回复

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

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