字符类型使用细节

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)

golang的数据类型之字符类型的更多相关文章

  1. Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单

    原文:Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单 长长的列表文字类型文件 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 214 ...

  2. Kotlin 数据类型(字符类型)

    Kotlin有两种常见的字符类型. 第一种是String,第二种char. String String 的类型的赋值必须是用双引号的. 格式: var name="Arm830" ...

  3. golang的数据类型之浮点类型

    [root@node3 shangxuetang]# cat float.go package main import "fmt" //演示golang中小数类型使用func ma ...

  4. golang的数据类型之字符串类型

    基本案例: [root@node3 shangxuetang]# cat string.go package main import "fmt" func main() { //s ...

  5. golang的数据类型之布尔类型

    1)布尔类型也叫 bool类型,bool类型数据只允许取值true或false2)bool类型占1个字节.3)bool类型适于逻辑运算,一般用于程序流程控制4)不可以0或非0的整数替代false和tr ...

  6. 2016年11月3日JS脚本简介数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6.布尔型数据:bool 7.对象类型:object 8.二进制:binary 语言类型: 1.强类型语言:c++ c c# java 2.弱类型语

    数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6 ...

  7. Mysql数据类型《二》字符类型

    字符类型 #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和varchar括号内的参数指的都是字符的长度 #char类型:定 ...

  8. golang: 常用数据类型底层结构分析

    虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的.它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struc ...

  9. 【GoLang】golang底层数据类型实现原理

    虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的.它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struc ...

随机推荐

  1. Codeforces - 1194C - From S To T - 子序列 - 排序

    https://codeforces.com/contest/1194/problem/C 好像没什么好说的,要能构造s必须是t的子序列,并且相差的字符集合d是p的子集. 用双指针法求两遍子序列就可以 ...

  2. Ecshop 商品详情页如何添加立即购买按钮

    1,加到位置 <li class="add_cart_li"> <a href="javascript:addToCart1({$goods.goods ...

  3. C++ STL常见数据结构(容器)分类

    vector:(连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,可能重新分配更大空间,拷贝的性能开 ...

  4. 攻防世界--python-trade

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/69c8f29912ae4f679d92a6cd36c33196.pyc 这里需要用到一 ...

  5. Linux学习笔记4-CentOS7中redis3.2.9安装教程

    redis下载地址:http://www.redis.cn/download.html 1.将下载过来的redis-3.2.9.tar.gz文件复制到/usr/local文件夹下 2.tar xzf ...

  6. vue,一路走来(15)--简单投票系统

    今天记录一下简单的投票系统,主要实现选中至少五张作品,并提交投票. 思路:选中作品,将作品id存入到数组里. 取消投票,则从数组中移除该作品id. 如图效果: <li v-for="( ...

  7. 一、dynamic

    一.dynamic使用: 从一直使用动态类型写接口 返回动态类型出现情况 1.返回接口每次不知道包含那些列(实体类解决) 2.操作的数据类型 不可知(参与数值计算-实体类解决明确类型) Dynamic ...

  8. 手写Mybatis,还需要后面调整下

    参考博客 https://blog.csdn.net/Kurozaki_Kun/article/details/81482212 个人理解 读取Mybatis配置文件 数据库连接信息 读取Mapper ...

  9. canvas 操作像素 反相

    代码实例: <!DOCTYPE html> <html> <head> <style> canvas{ background:#eee; } </ ...

  10. sql中使一个字段升序,一个字段降序

    ORDER BY _column1, _column2; /* _column1升序,_column2升序 */ ORDER BY _column1, _column2 DESC; /* _colum ...