golang byte与rune区别

先看代码

package main

import (
	"fmt"
)

func main() {
	var a = "hello world"

	var b = "中"
	fmt.Println([]rune(a))
	fmt.Println([]rune(b))
	fmt.Println([]byte(b))

}

源码也没有找到具体位置,盗用网上张图把

byte是uint8、rune为uint32,一个仅限于ascii码的值,一个支持更多的值。rune比byte能表达更多的数。

golang默认使用utf8编码,一个中文占用3字节,一个utf8数字占用1字节,utf8字母占用1字节

原文地址:https://www.cnblogs.com/LC161616/p/10111683.html

时间: 2024-10-23 08:16:19

golang byte与rune区别的相关文章

c#与java中byte字节的区别及转换方法

原文:c#与java中byte字节的区别及转换方法 在java中  byte的范围在 [-128,127] 在C#中  byte的范围在 [0,255] 所以 java程序与C#程序 进行数据传输的时候 要先把java的byte数组转换成在[0,255]范围内的int型数组a[];再把a[]进行加密得到字符串str, 把字符串传到web服务上. 转换方法: int data[] = new int[bytes.length]; for(int i=0;i data[i] = bytes[i] &

golang []byte 和 string相互转换

原文链接:golang []byte和string相互转换 测试例子 package main import ( "fmt" ) func main() { str2 := "hello" data2 := []byte(str2) fmt.Println(data2) str2 = string(data2[:]) fmt.Println(str2) } 测试结果: [[email protected] ]# go run d.go [104 101 108 10

golang []byte转string

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) } 打印信息:

Character流与Byte流的区别(转)

Character流与Byte流的区别是 A) 每次读入的字节数不同 B) 前者带有缓冲,后者没有C) 前者是字符读写,后者是字节读写 D) 二者没有区别,可以互换使用 Java的流操作分为字节流和字符流两种.字节流与字符流主要的区别是他们的的处理方式字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的.但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化这两个之间通过

golang byte转string 字节数组转字符串的问题

golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,他只是在这个基础上又加了一些概念这里说一个很小的问题,就是字节数组转string的问题,网上大部分都是这样转的(包括google上):string(p[:]),这个转完了是有问题的,我们再来看一下string这个结构体: struct String{        byte*   str;        intgo   len;}; 这个结构体让我想起了nginx的string,他是这样定

比特(位,bit),字节(Byte),字符的区别

比特(位):英文bit,是计算机晶体管的一种状态(通电与断电).就是0与1,真与假,是计算机最基本的传输单位. 示例: 2bit : 10; 4bit : 1111; 8bit : 1111 1111; 字节:英文Byte 1.是计算机信息技术用于计量存储容量的一种计量单位 1B(Byte) = 8bit; 1KB = 1024B(Byte); 1MB = 1024KB(Byte); . . . 2.换算 1B = 8bit 1B = 1111 1111 1B = 0至255 1B = -128

golang []byte和string相互转换

测试例子 package main   import (     "fmt" )   func main() {     str2 := "hello"     data2 := []byte(str2)     fmt.Println(data2)     str2 = string(data2[:])     fmt.Println(str2) }

Go语言中byte类型和rune类型(五)

本篇内容本来准备在上一篇写的,想了想还是拆开写. go语言中字符串需要使用用双引号,而单引号用来表示单个的字符,字符也是组成字符串的元素.go语言的字符有两种: uint8类型,或者叫 byte 型,代表了ASCII码的一个字符. rune类型,代表一个 UTF-8字符. ASCII编码是1个字节,而UTF-8是可变长的编码,当要表示中文等非ASCll编码的字符时,需要使用UTF-8编码来保证不会乱码. 举个例子,来遍历打印一个字符串,当使用byte类型时: func main() { str:

Golang 笔记 1

一.Go语言基础 1. 基础 Go语言中的标识符必须以字母(Unicode字母,PHP/JS可以用中文作为变量名)下划线开头.大写字母跟小写字母是不同的:Hello和hello是两个不同的名字.  Go中有25个关键字: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for imp