美文网首页
rune数据类型

rune数据类型

作者: 小幸运Q | 来源:发表于2021-02-16 10:53 被阅读0次

//int32的别名,几乎在所有方面等同于int32
//它用来区分字符值和整数值

type rune = int32

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

package main

import "fmt"

func main() {

    var str = "hello 你好"
    fmt.Println("len(str):", len(str))

}

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

如果我们预期想得到一个字符串的长度,而不是字符串底层占得字节长度,该怎么办呢?

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {

    var str = "hello 你好"

    //golang中string底层是通过byte数组实现的,座椅直接求len 实际是在按字节长度计算  所以一个汉字占3个字节算了3个长度
    fmt.Println("len(str):", len(str))
    
    //以下两种都可以得到str的字符串长度
    
    //golang中的unicode/utf8包提供了用utf-8获取长度的方法
    fmt.Println("RuneCountInString:", utf8.RuneCountInString(str))

    //通过rune类型处理unicode字符
    fmt.Println("rune:", len([]rune(str)))
}

相关文章

  • rune数据类型

    byte 等同于int8,常用来处理ascii字符rune 等同于int32,常用来处理unicode或utf-8...

  • Go自学笔记(持续更新...)

    一、各数据类型内存布局 Sizeof(uint8) = 1 字节 = 8byte Sizeof(rune) = ...

  • 【golang】浅析rune数据类型

    在学习golang基础的时候,发现有个叫rune的的数据类型,当时不理解这个类型的意义。 查询,官方的解释如下: ...

  • 抽象超现实主义风格插画!让人赞叹的插画美图!

    他的作品仿佛来自潜意识,插画家Rune的抽象超现实主义风格! 来自丹麦插画家| Rune Fisker Rune在...

  • rune

    字符串中每个元素称为字符,字符使用单引号包括。 Go语言中的字符分为两种类型: 字符类型整型编码字节长度byteu...

  • go 语言中的 rune

    rune是Go语言中一种特殊的数据类型,它是int32的别名,几乎在所有方面等同于int32,用于区分字符值和整数...

  • Golang - 基本数据类型

    int,rune(注:rune 也是int, 用于字符的UTF-8代码)int8 ,int16 ,int32 ,i...

  • string相关函数

    len():内建函数,查找字符串长度。 如果字符串中有中文,需要将其转换为[]rune类型:r := []rune...

  • 【golang】rune类型必知点

    在看golang的源码包经常看到rune,一直和byte搞混淆。先来看看rune与byte区别: byte 等同于...

  • string反序

    var t string = "123456你好" tmp := []rune(t) for from, to :...

网友评论

      本文标题:rune数据类型

      本文链接:https://www.haomeiwen.com/subject/ednfxltx.html