Golang语言基础数据类型之字符类型

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

1.字符概述

组成每个字符串的元素叫做"字符",可以通过遍历或者单个获取字符串元素获得字符。 

Golang中没有专门的字符类型,如果要存储单个字符(字母),一般用byte或者rune来保存。

字符用单引号('')包裹起来。Go语言的字符有以下两种:
	byte类型:
		或者叫uint8型,代表一个ASCII码字符。
	rune类型:
		或者int32代表一个UTF-8字符。

当需要处理中文、日文或者其他复杂字符时,则需要用到rune类型。rune类型实际是一个int32。

Go使用了特殊的rune类型来处理Unicode,让基于Unicode的文本处理更为方便,也可以使用byte型进行默认字符串处理,性能和扩展性都有照顾。

Golang中字符使用UTF-8编码,Unicode是对应的字符集,UTF-8是Unicode的其中一种编码方案,其中还有UTF-16,UTF-32等多种编码方式。

2.定义byte和rune类型

package main

import "fmt"

func main() {

	var (
		// 英文字符,本质上对应的是一个unint8类型。字母,数字,标点等字符,底层是按照ASCII进行存储。
		a byte = 'Y'

		// 中文字符,本质上对应的是一个int32类型。汉子字符,底层对应的是Unicode码值23609。
		b rune = '尹'

		// 字符类型,本质上就是一个整数,也可以直接参与运算,输出字符的时候,会将对应的码值作为一个输出。
		c = a + 1
	)

	fmt.Printf("a = %v, 对应字符: %v,---> %T\n", a, string(a), &a)
	fmt.Printf("b = %v, 对应字符: %v,---> %T\n", b, string(b), &b)
	fmt.Printf("c = %v, 对应字符: %v,---> %T\n", c, string(c), &c)
}

3.转义字符

Go语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。
转义符 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\b 退格
\t 制表符
\" 双引号
\\ 反斜杠
package main

import "fmt"

func main() {

	/*
		\n:
			换行。
		\b:
			退格。
		\r:
			光标回到本行开头,后续输入就会替换原有的字符。
		\t:
			制表符。
		\":
			原样输出双引号。
		\\:
			原样输出\。
	*/
	fmt.Println("xxxxx\nyyy")
	fmt.Println("xxxxx\byyy")
	fmt.Println("xxxxx\ryyy")
	fmt.Println("xxxxx\tyyy")
	fmt.Println("xxxxx\"yyy")
	fmt.Println("xxxxx'y'yy")
	fmt.Println("xxxxx\\yyy")

	var (
		// 字符串支持很多常见的转义符
		s1 string = "\n\tGOPATH路径:\n\t\t 'd:\\yinzhengjie\\code\\Golang\\go.exe'\n\n\r哈哈哈\t\t\t\v开始学习Golang吧!\v要加油哟!\v你可以的!"
	)

	fmt.Printf("s1 ---> %s\n", s1)

}

4.遍历字符串获取字符

package main

import (
	"fmt"
)

func main() {

	var name = "JasonYin老师"

	for k, v := range name {
		fmt.Printf("%d ---> %v : %c, %T\n", k, v, v, v)
	}
}
posted @ 2024-07-02 00:17  尹正杰  阅读(67)  评论(0编辑  收藏  举报