zoukankan      html  css  js  c++  java
  • 【golang】浅析rune数据类型

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

    golang中还有一个byte数据类型与rune相似,它们都是用来表示字符类型的变量类型。它们的不同在于:

    • byte 等同于int8,常用来处理ascii字符
    • rune 等同于int32,常用来处理unicode或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)))
      }
  • 相关阅读:
    JSF
    filter用户例子
    分析LogFilter
    理解session
    了解xml文件
    软件工程期末项目总结
    阅《软件工程》——之感
    自我介绍
    期末课程设计《天猫后台管理系统》
    JSON
  • 原文地址:https://www.cnblogs.com/smallleiit/p/10881741.html
Copyright © 2011-2022 走看看