golang 中的rune类型 您所在的位置:网站首页 byte转码 golang 中的rune类型

golang 中的rune类型

#golang 中的rune类型| 来源: 网络整理| 查看: 265

前言

在学习golang的时候,对于中文字符串的切片让我感到困惑,如:

package main import "fmt" func main () { text:= "在学习golang的时候,对于中文字符串的切片让我感到困惑" fmt.Println(len(text)) } >>> 75

由于之前的语言是python,对这样的用法很不习惯,在切分的时候,如果对中文切分不当,可能导致乱码。这时就发现了rune数据类型。

官方文档解释

// rune is an alias for int32 and is equivalent to int32 in all ways. It is // used, by convention, to distinguish character values from integer values. //int32的别名,几乎在所有方面等同于int32 //它用来区分字符值和整数值

type rune = int32

*golang中的字符串底层实现是通过byte数组的 中文字符在unicode下占2个字节,在utf-8编码下占3个字节,golang默认编码是utf-8。

默认的byte 等同于int8,常用来处理ascii字符 而rune 等同于int32,常用来处理unicode或utf-8字符*

因为rune几乎等同于int32,所以通过rune类型转换处理,就能够正常处理含有中文的字符啦:

package main import "fmt" func main () { text:= "在学习golang的时候,对于中文字符串的切片让我感到困惑" cn_text := []rune(text) fmt.Println(len(cn_text)) } >>> 29


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有