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的数据比较大,内存拷贝的话会影响系统的性能。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cmdping命令_cmd ping端口命令

    cmdping命令_cmd ping端口命令标题cmd-ping命令一、ping命令:通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接。相应的回响应答消息的接收情况将和往返过程的时间一起显示出来。Ping是用于检测网络连接性、可到达性和名称解析的疑难问题的主要TCP/IP命令。如果不带参数,ping将显示帮助。(ping-PacketInternet…

  • Oracle 12.1.0.2 对JSON的支持

    Oracle 12.1.0.2 对JSON的支持

  • acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」

    acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。输入格式输入文件有若干组数据,每组数据的第一行是一个正整数 N,表示工地的隧道数。接下来的 N 行每行是用空格隔开的两个整数 S 和 T,表示挖煤点 S 与挖煤点 T 由隧道直接连

  • js中ajax写法_ajax原生写法

    js中ajax写法_ajax原生写法//JavaScriptDocumentvarXHR;//定义一个全局对象functioncreateXHR(){//首先我们得创建一个XMLHttpRequest对象if(window.ActiveXObject){//IE的低版本系类XHR=newActiveXObject(‘Microsoft.XMLHTTP’);//之前IE垄断了整个浏览器市场,没遵循W3C标准…

  • 语义分割模型精度排名_场景语义分割

    语义分割模型精度排名_场景语义分割憨批的语义分割1——基于Mobile模型的segnet讲解学习前言什么是Segnet模型segnet模型的代码实现1、主干模型Mobilenet。2、segnet的Decoder解码部分代码测试学习前言最近开始设计新的领域啦,语义分割也是图像处理一个非常重要的应用方向,我查了很多资料苦于如何入门,接下来给大家讲讲里面比较基础的segnet模型。在下一个BLOG我会跟大家讲怎么训练自己的segn…

  • Sql Server远程查询db 表中的数据,以本地

    Sql Server远程查询db 表中的数据,以本地

发表回复

您的电子邮箱地址不会被公开。

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