正文
go语言的byte的用法,go 字符串转byte
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
数据段保存有如下字符串:string byte
string是Go语言中的基础数据类型。
声明string变量非常简单,常见的方式有以下两种:
声明一个空字符串后再赋值。
var s string。
s = "hello world"。
需要注意的是空字符只是长度为0,但不是nil。不存在值为nil的string。
使用简短变量声明:
s := "hello world" //直接初始化字符串。
双引号与单引号。
字符串不仅可以使用双引号赋值,也可以使用反单引号赋值,它们的区别是在于对特殊字符的处理。
假如我们希望string变量表示下面的字符串,它包括换行符和双引号:
Hi。
this is "Steven"。
1。
2。
使用双引号表示时,需要对特殊字符转义,如下所示:
s:= "Hi, \nthis is \"Steven\"."。
1。
如果使用反单引号时,不需要对特殊符号转义,如下所示:
s := Hi。
this is "Steven"。
需要注意的是,字符串拼接会触发内存分配以及内存拷贝,单行语句拼接多个字符串只分配一次内存。比如上面的语句中,在拼接时,会先计算最终字符串的长度后再分配内存。
类型转换:
项目中,数据经常需要在string和字节[]byte之间转换。
byte[]数组的用法。
参数和返回值是两个概念。参数有两类,一类是仅仅作为读取的元素被引入,方法结束后不发生变化。一类则是参与到处理中,结束后发生变化。如果处理比较复杂,往往会使用第二类参数获取数据。
而返回值往往是处理的结果,最简单的往往是处理成功或失败。或者是没有结果就是成功,失败抛异常。
在in.read中主要操作是针对参数byt的,也就是把输入的数据存入到byt中。不过对于in.read操作来说,用户输入了多少数据也是很重要的,所以返回值里就返回了输入的字节数。当然,也可以做个对象,同时返回byte数组和处理件数,或者返回一个新的byte数组,这取决于一开始对于in.read的设计。java开发者选择了用户自申请缓冲区的做法,就是现在的作法了。
(顺便说一下, 让用户自己new一个byte数组当作缓冲区,然后传进来,可以比较好的适应低内存环境,例如早期电脑,例如嵌入式设备)
byte类型主要用法?
很少用到,一般用于I/O流读取文件。还有就是在数据库存了Blob对象,对应Po类的属性用byte[]
go语言怎么将二进制转为字符串
func ByteToBinaryString(data byte) (str string) {
var a byte
for i:=0; i 8; i++ {
a = data
data = 1
data = 1
switch (a) {
case data: str += "0"
default: str += "1"
}
data = 1
}
return str
}
//该代码片段来自于:
使用方法package main
import . "fmt"
func main() {
Printf("[%s][%s][%s][%s]\n",
ByteToBinaryString(byte(0)),ByteToBinaryString(byte(231)),
ByteToBinaryString(byte(168)), ByteToBinaryString(byte(162)))
}