go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符

Posted Locutus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符相关的知识,希望对你有一定的参考价值。

Go语言的字符有以下两种:

  • uint8类型,或者叫byte类型,代表了ASCII码的一个字符
  • rune类型,代表一个UTF-8字符。当需要处理中文、日文或者其他复合字符时,则需要用到rune类型。rune类型实际是一个int32整数

格式化输出的"%T"动词可以输出变量的实际类型,使用这个方法可 以查看byte和rune的本来类型。

package main

import (
    "fmt"
)

func main() {
    var a byte = "a"
    fmt.Printf("%d %T\\n", a, a)
    
    var b rune"你"
    fmt.Printf("%d %T\\n", b, b)
}

/*
97 uint8,byte类型的a变量,实际类型是uint8,其值为a,对应的 ASCII编码是97

20320 int32,rune类型的b变量,实际类型是int32,其值是你,对应的Unicode码是20320
*/

Unicode与UTF-8

在go语言中,字符串的内部实现使用UTF-8编码。通过rune类型, 我们可以方便地对每个UTF-8字符进行访问。当然,go语言也支持按传统的ASCii码方式进行逐字符访问。

  • Unicode是字符集,ASCII也是一种字符集

1)Unicode是一种字符集(code point,字符编码)

2)UTF-8是Unicode的存储实现,即把Unicode中字符的ID转换为字节序列的编码规则

3)编码与存储

以上是关于go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符

go语言学习笔记 — 基础 — 基本数据类型 — 原生数据类型:布尔型数字类型(整型与浮点型)字符串类型

go语言学习笔记 — 基础 — 基本数据类型 — 字符串(11):go中的字符串

go语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:遍历字符串

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:修改字符串