字符类型使用细节

1)字符常量是用单引号('')括起来的单个字符。例如:var c1 byte = 'a' var c2 int = '中' var c3 byte = '9'

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

3)Go语言的字符使用UTF-8编码,如果想查询字符对应的utf8码值可以百度搜索。英文字母--1个字节, 汉字--3个字节

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

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

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

[root@node3 shangxuetang]# cat char.go
package main

import "fmt"

func main() {

  var c1 byte = 'a'
  var c2 byte = '0' //字符的0

  //当我们直接输出byte值,就是输出了对应的字符的码值
  fmt.Println("c1 = ", c1)
  fmt.Println("c2 = ", c2)

  //如果我们希望输出对应字符,需要使用格式化输出
  fmt.Printf("c1=%c c2=%c \n", c1, c2)

  //var c3 byte = '北' //overflow溢出
  var c3 int = '北'
  fmt.Printf("c3=%c c3对应码值=%d \n", c3, c3)

  //可以直接给某个变量赋一个数字,然后按格式化输出时%c,会输出该数字对应的Unicode 字符
  var c4 int = 22269 // 22269 -> '国' 120-> 'x'
  fmt.Printf("c4=%c \n", c4)

  //字符类型是可以进行运算的,相当于一个整数,运输时是按照码值进行
  var n1 = 10 + 'a' //10 + 97 = 107
  fmt.Printf("n1=", n1)

}

查看输出结果:
[root@node3 shangxuetang]# go run char.go
c1 = 97
c2 = 48
c1=a c2=0
c3=北 c3对应码值=21271 //(21271是'北' 字的Unicode编码10进制的编码)
c4=国
n1=%!(EXTRA int32=107)

对上面代码说明

1)如果我们保存的字符在 ASCII表的比如[0-1,a-z,A-Z...]直接可以保存到byte

2) 如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存。

3) 如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmt.Printf("%c", c1)

最新文章

  1. 深入理解js构造函数
  2. Junit3断言
  3. September 17th 2016 Week 38th Saturday
  4. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
  5. hdu 2203 亲和串
  6. 简单分组背包ACboy needs your help(hdu1712)
  7. Sudoku Solver [LeetCode]
  8. Size Classes with Xcode 6
  9. HTTP错误 404.17
  10. php install extension
  11. PHP -- 添加注释
  12. [C#参考]byte数组和Image的相互转换
  13. JVM(二)JVM内存布局
  14. pgsql sql 统计整理
  15. 深入浅出 JVM GC(4)常用 GC 参数介绍
  16. 【转】Oracle virtual column(虚拟列)
  17. 【Java】 剑指offer(28) 对称的二叉树
  18. 'PostBuildEvent' failed with error code '1' 'Unspecified error'( PostBuildEvent”失败,错误代码为“1”。“未指定的错误” )
  19. HTC Vive的定位技术
  20. 【bzoj4296】再见Xor

热门文章

  1. CodeChef Little Elephant and Balance
  2. Go语言_包、变量和函数
  3. javaScript的预加载
  4. hadoop_hdfs_上传文件报错
  5. 编译错误:warning C4005]ws2def.h(91): warning C4005: “AF_IPX”: 宏重定义 winsock.h(460) : 参见“AF_IPX”的前一个定义
  6. Mybatis 单表 常用增删改查
  7. tmux使用——2019年11月20日16:40:15
  8. 百度小程序-swiper组件
  9. 每天一个linux命令:less(14)
  10. php fmod()函数 语法