go中字符类型的使用小结
示例
// 字符类型的用法
package main
import (
"fmt"
"unsafe"
)
func main() {
// 未指定类型并赋值字符'a',默认为 int32类型
var c1 = 'a'
fmt.Printf("c1 的值为 %c, 对应的ascii码值为 %d, 是 %T 类型, 占 %d 个字节\n", c1, c1, c1, unsafe.Sizeof(c1)) // c1 的值为 a, 对应的ascii码值为 97, 是 int32 类型, 占 4 个字节
// byte类型实际上是与uint8相同,取值范围为 0~255
// 可保存的字符的最大码值为 255
// 如果保存的字符在ascii表内,则可直接保存为 byte
var c2 byte = '0'
fmt.Printf("c2 的值为 %c, 对应的ascii码值为 %d, 是 %T 类型, 占 %d 个字节\n", c2, c2, c2, unsafe.Sizeof(c2)) // c2 的值为 0, 对应的ascii码值为 48, 是 uint8 类型, 占 1 个字节
// 如果保存的字符的码值大于255,则可以考虑用int类型保存
var c3 int = '我'
fmt.Printf("c3 用v格式输出为 %v, c3 的值为 %q, 对应的ascii码值为 %d, 是 %T 类型, 占 %d 个字节\n", c3, c3, c3, c3, unsafe.Sizeof(c3)) // c3 用v格式输出为 25105, c3 的值为 '我', 对应的ascii码值为 25105, 是 int 类型, 占 8 个字节
// 整数值可以用%c格式化输出对应的unicode字符
c5 := 22269
fmt.Printf("c5 值为 %d, %v, 对应的unicode字符为 %c, %q\n", c5, c5, c5, c5) // c5 值为 22269, 22269, 对应的unicode字符为 国, '国'
// 字符类型的运算
// 实际上是字符对应的码值的运算
c6 := 'a'
c6 += 10
fmt.Printf("c6 的值为 %v, %d\n", c6, c6) // c6 的值为 107, 107
// %#v, %#x, %U, %%, %q, %b, %o, %0, %t, %s
n1 := 100
// %#v 按%v格式输出
fmt.Printf("n1 = %#v\n", n1) // n1 = 100
// %#x 以十六进制格式输出
fmt.Printf("n1 = %#x\n", n1) // n1 = 0x64
// %U 以unicode编码格式输出
fmt.Printf("n1 = %U\n", n1) // n1 = U+0064
// %% 输出 %
fmt.Printf("%%\n") // %
// %q 如果是单个字符或数字(数字会被自动转换成对应的字符)则自动在字符两边加单引号
fmt.Printf("n1 = %q\n", n1) // n1 = 'd'
// %b 以二进制格式输出
fmt.Printf("n1 = %b\n", n1) // n1 = 1100100
// %o 以八进制格式输出,输出结果不带前缀0
fmt.Printf("n1 = %o\n", n1) // n1 = 144
// %O 这里是大写的O,以八进制格式输出,如:0o123, 前面是0+小写的o
fmt.Printf("n1 = %O\n", n1) // n1 = 0o144
// %t 以布尔类型格式输出,两个值 true or false
fmt.Printf("%t\n", true) // true
// %s 以字符串格式输出,
// %q 如果是字符串则自动在字符串两边加双引号,
// 如果是单个字符或数字(数字会被自动转换成对应的字符)则自动在字符两边加单引号
// 注意:在utf8编码中,一个汉字占3个字节
s1 := "我爱你,中国"
fmt.Printf("s1 = %s, %q, 类型为 %T, 占 %d 个字节\n", s1, s1, s1, unsafe.Sizeof(s1)) // s1 = 我爱你,中国, "我爱你,中国", 类型为 string, 占 16 个字节
}
总结

go中字符类型的使用小结的更多相关文章
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
1 CString,int,string,char*之间的转换 string 转 CString CString.format("%s", string.c_str()); cha ...
- go中指针类型的用法小结
代码 // 指针的用法 package main import ( "fmt" ) func main() { var i int = 100 // 输出i的地址 fmt.Prin ...
- python 判断字符串中字符类型的常用方法
s为字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isup ...
- DB2中字符、数字和日期类型之间的转换
DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别 ...
- 计算:表中varchar类型的字段能容纳的最大字符数?
建表语句: CREATE TABLE `test2` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `content` varchar(21842) NOT ...
- C++中宽字符类型(wchar_t)的编码
转载自: http://www.ituring.com.cn/article/111027 问题的起因是和一个朋友讨论不同编码的转换问题,说到了wchar_t的类型,朋友的看法是,wchar_t的编码 ...
- python中是否有单独的字符类型,通过下标的方式表示字符串中的字符
说明: 在python中,没有单独的字符类型,一个字符呢就是一个大小为1的字符串. 并且可以通过下标的方式,表示字符串中的字符. 操作过程: 1.通过[ ]的方式表示字符串中的第几个字符 >&g ...
- XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
- js中四舍五入保留两位效数,js中将Number转换成字符类型
今天在写代码的时候遇到了点问题,特意记下,以免忘记!四舍五入方法: // num为传入的值,n为保留的小数位 function fomatFloat(num,n){ var f = parseFloa ...
随机推荐
- @Profile使用及SpringBoot获取profile值
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Fmuma/article/details ...
- 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC72K325T的高速数据处理核心板
基于TI DSP TMS320C6678.Xilinx K7 FPGA XC72K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...
- 服务器处理 json 数据
今天做小程序后端,需要处理 json 数据,我用的 express 框架,无法直接处理,需要进行 json 提取,网上找了一堆,发现json 四种解析格式,在此记录一下 www-form-urlenc ...
- python常用函数 D
defaultdict(set_type) 可以定义字典多值映射,入参类型决定value类型. 例子: deque:(int) 保留最后N个元素 例子: Decimal(float) 直接对浮点数进行 ...
- 解决 linux 下安装 node 报: command not found
注意:有时安装成功后,需要关闭xshell,重新启动.nvm才会生效. 1. 在 linux 下安装 node 提示 -bash: node: command not found. 2. 这种情况可 ...
- 通俗理解BiLSTM-CRF命名实体识别模型中的CRF层
虽然网上的文章对BiLSTM-CRF模型介绍的文章有很多,但是一般对CRF层的解读比较少. 于是决定,写一系列专门用来解读BiLSTM-CRF模型中的CRF层的文章. 我是用英文写的,发表在了gith ...
- mybatis源码分析之04Mapper接口的动态代理
在工作中,使用mybatis操作数据库,只需要提供一个接口类,定义一些方法,然后调用接口里面的方法就可以CRUD,感觉是牛了一逼! 该篇就是记录一下,mybatis是如何完成这波骚操作的,即分析我们测 ...
- 三、PCB设计与Allegro基本概念
PCB:印制电路板 如--update更新时无法变为0 4.区域规则--设置区域规则--赋予区域轮廓 5.铜皮 把.sav改为.dsn--就可以恢复出突然关闭的.dsn文件 生成规则钻孔文件(.drl ...
- set实现数组去重后是对象,这里转化为数组
ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; ...
- LintCode之奇偶分割数组
题目描述: 我的分析:题目要求将奇数放在偶数的前面,没有要求将奇数或偶数排序,因此我可以设置两个指针,一个(i)指向数组第一个数字,另一个(j)指向数组的最后一个数字,因为奇数要放在前面,所以从后往前 ...