字符类型注意事项|学习笔记

简介: 快速学习字符类型注意事项。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:字符类型注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9525


字符类型注意事项

 

内容介绍:

一、 字符类型使用细节

二、 字符类型本质探讨

 

一、 字符类型使用细节

1. 字符常量是用单引号(‘’)括起来的单个字符。

例如: var c1 byte = 'a'

var c2 int =‘中‘

var c3 byte = 'g'。

2. Go 中允许使用转义字符l'来将其后的字符转变为特殊字符型常量。例如: var c3 char = \n'l/ '\n'表示换行符。

3. Go 语言的字符使用 UTF-8编码。

http://www.mytju.com/classcode/tools/encode_utf8.asp 

在此查询字符对应的 UTF-8码值。

英文字母-1个字节,汉字-3个字节。

4. 在 Go 中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8编码的码值。

(1)ASCLL 码 表示的特殊字符,字母

(2)unicode 码,兼容 ASCLL,同时扩展,可以表示更多的字符,缺点是不灵活,占用空间大。

(3)utf8编码在 unicode 基础上做优化,可以变长的编码方式来表示不同字符,这样可以节省空间。

image.png

5. 可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的 Unicode 字符。

Var n1 int = 38889

Fmt . Printf (‘’n1=%c’’, n1)//输出 ‘韩’

案例演示:

var c4 int = 22269 // 22269 ->‘国’

fmt.Printf("c4=%c\n", c4)

输出为c4 = 国

6. 字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码。

Var char5  byte = a

Var n10 = char5 + 1// 98  n10【byte】

Fmt. Printf (‘’n10 类型=%T,值=%c, n10,n10,n10)//= =>97+1

案例演示:

var n1 = 10 + 'a’    //10 + 97 =107

fmt.Print1n("n1=", n1)

输出为n1 = 107

 

二、 字符类型本质探讨

1) 字符型存储到计算机中,需要将字符对应的码值(整数)找出来

a) 存储:字符--->对应码值---->二进制-->存储

b) 读取:二进制---->码值---->字符-->读取

2) 字符和码值的对应关系是通过字符编码表决定的(是规定好)

3) Go 语言的编码都统一成了 utf-8。

非常的方便,很统一,再也没有编码乱码的困扰了.

相关文章
|
负载均衡 Ubuntu Dubbo
nacos常见问题之nacos超时如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
消息中间件 安全 API
记项目的一次发送短信及短信模板配置分享
我们日常使用的软件或者网站,大部分都在使用短信业务,比如 注册 、 验证码功能 。还有一些特定的业务需要发送短信通知国内外用户等。有了需求就会有平台提供服务,国内有很多互联网公司都提供短信业务,比如阿里云、腾讯云、七牛。本次我们主要讲解的是阿里云提供的短信服务。
记项目的一次发送短信及短信模板配置分享
|
测试技术 PHP 开发工具
深入解析 Laravel 中的 Composer Lock 文件
【8月更文挑战第31天】
356 0
|
存储 消息中间件 Linux
操作系统(5)-----操作系统进程相关
操作系统(5)-----操作系统进程相关
183 0
|
Web App开发 数据采集 Python
让ChromeDriver 125顺利运行:解决找不到chromedriver.exe的技巧
本文介绍了如何解决Selenium使用ChromeDriver时遇到的版本不匹配问题,以及如何设置环境变量。同时,文章提供了示例代码,展示如何在Python中配置Selenium使用代理IP、设定User-Agent和Cookie进行网页抓取,以提高爬虫的效率和成功率。确保ChromeDriver与Chrome浏览器版本一致,将`chromedriver.exe`添加到环境变量,然后使用`Options`和`Proxy`类配置代理和浏览器选项,最后通过`webdriver.Chrome()`启动浏览器并执行抓取任务。
1060 0
让ChromeDriver 125顺利运行:解决找不到chromedriver.exe的技巧
|
网络协议 数据库 网络架构
一张图带你精通 OSPF 8种邻居状态机!
【4月更文挑战第25天】
1967 0
一张图带你精通 OSPF 8种邻居状态机!
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
4763 4
|
域名解析 缓存 运维
阿里云DNS常见问题之DNS要刷新多遍才能打开如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
Java 索引
解决Java中的数组越界异常的技术
解决Java中的数组越界异常的技术
|
监控 数据安全/隐私保护
阿里云 短信服务——短信发送频率限制
阿里云 短信服务——短信发送频率限制
2655 0