《Go圣经》章三:基本数据
参考书《Go程序设计语言》,Go学习路径的Go基础模块,整理了一些我掌握不太好的地方
- 计算机的底层是位(bit),而实际操作是基于大小固定的单元中的数值,称为字(word),可以解释为整数,浮点数,位集(bitset)或内存地址等。
- go四大类数据类型:
- 基础类型
- 数字
- 字符串
- 布尔型
- 聚合类型
- 数组
- 结构体
- 引用类型
- 指针
- 切片
- map
- 函数
- 通道
- 接口类型
- 基础类型
类别 | 表示 |
---|---|
有符号整数 | int8/int16/int32/int64 |
无符号整数 | uint8/uint16/uint32/uint64 |
原生整数 | int/uint 与系统位数一致 |
rune | 同int32 指明unicode码点 |
byte | 同int8 强调原始数据而非量值 |
uintptr | 无符号整数,大小不明,存放指针 |
float32 | 精度大约6位 |
float64 | 精度大约15位 |
complex64 | 复数,由float32构成 |
complex128 | 复数,由float64构成 |
bool | 无法隐式转换为数值,反之也不行 |
字符串字面量
s[i, j]
生成子串- 使用utf8编码,非ascii字符码点需要两个或多个字节
- 可以用加号连接字串
- 字串间可以比较
- 字串可以赋值,不可改变,这意味着两个字串可以共用一个底层
- ``原样字串,忽略换行
编码
ASCII码:7位表示128个字符
Unicode码:包含世界上所有字符,各自有一个叫Unicode码点的标准数字,go中称为文字符号(rune),大约有十二万字符,int16存不下,int32刚好可以,也就是rune。我们可以让每个字符都占32位,即utf32,但是太浪费了,所以采用了utf8编码。
UTF-8编码:每个字符用1-4个字节表示,go中允许如下表示。
\xhh
h式十六进制数字,大小写皆可,且必须是两位\ooo
八进制,必须使用三位数字,且不超过\377\uhhh
16位码点值\Uhhhhhhhh
32位码点值当[]rune作用于utf8编码的字串时,返回unicode码点序列
字符串和字节切片
strings
包:搜索,替换,比较,修整,切分,连接字符串bytes
包:类似strings
用于操作[]byte类型strconv
包:布尔值,整数,浮点数与字符串间的转换,还有为字符串添加/去除引号的函数unicode
包:有判别文字符号值特性的函数,如IsDigit,IsLetter,IsUpper,IsLower字符串可以和字节切片相互转换
s := "abc" b := []byte(s) s2 := string(b)
字符串和数字的相互转换
整数转字符串
fmt.Sprintf
strconv.Itoa
x := 123
y := fmt.Sprintf("%d",x)
fmt.Println(y,strconv.Itoa(x)) //“123 132”按不同进位制格式化数字
fmt.Println(strconv.FormatInt(int64(x),2)) //"1111011"
fmt.Printf
里的%b,%d,%o,%x
往往比Format方便s := fmt.Sprintf("x=%b",x) //"x=1111011"
字符串转整数
x,err := strconv.Atoi("123") //x是整形 y,err := strconv.ParseInt("123",10,64) //十进制,int64类型
常量
常量是一种表达式,在编译阶段就计算出表达式的值,常量本质上都属于基本类型,对于常量操作数,所有数学运算,逻辑运算和比较运算后的结果依然是常量
const (a = 1bc = 2d ) //a=1 b=1 c=2 d=2
const (_ = 1 << (10 * iota)KiB //1024MiB //1048576 )
无类型常量精度可以很高,常量声明(包扩短变量声明)都是有类型的,
const a = 1024
这样没有
欢迎访问我的主页
《Go圣经》章三:基本数据相关推荐
- 现实迷途 第十三章 三兵一帅
第十三章 三兵一帅 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 看到小小的办公室里加多了三个人,江北感觉心情不错,他终于不是一个光杆老总了,而是手下有了三个兵了,三个新同事都客气地 ...
- 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五
汇编语言 第三版 王爽 清华出版社文档记录创建 2020年8月9日15:21:11初稿完成 2020年9月5日15:38:22前言汇编语言,CPU提供的机器指令的助记符的集合不同处理器,机器指令可能不 ...
- 【贪玩巴斯】Unity3D初学圣经(三)—— unity中的基础概念——scene场景,component组件,assets文件夹和Material材质,Mesh Renderer与shader
[贪玩巴斯]Unity3D初学圣经 三-- unity中的基础概念--scene场景,component组件与assets文件夹和Material材质以及Mesh Renderer 和 shader ...
- 第三十二章 三更雪压飞狐城(一之全)
高耸的太行山脉从宋朝境内黄河北岸的王屋山,一直向东北蜿蜒,迄于北方辽国境内的燕山山脉,正好成为世界岛东部黄河大平原与河东高原之分界.太行山脉的西侧,坡度徐缓,而东侧则十分陡峻.但这长达数千里的山脉中, ...
- 协议圣经 RTSP(三)
rtsp协议 所有代码实例可能使用go c c++ java nodejs 等任何一种语言 协议捕获使用wireshark Real Time Streaming Protocol 实时流协议.这个协 ...
- 传感器自学笔记第十一章——三色RGB学习笔记+高感度声音检测模块+KY-010光遮断传感器+TCRT5000循迹传感器+倾斜模块
作者:GWD 时间:2019.06.28 三色RGB学习笔记(开关量类传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:RGB LED 模块由一个贴片全彩 LED 制成,通过 R ...
- [篇二章三]_Windows 11 安装报错指南
################################################## 目录 Windows 11 安装前一系列报错问题 前言 一些经常遇到的问题比如不支持硬件需求 当前 ...
- c++ day5 第四章 (三)动态结构,存储类型,数组替代品
文章目录 用new分配动态结构 示例1 使用成员运算符和间接成员运算符访问结构成员 示例2 动态分配内存,以存储多个字符串,只需一个数组作为输入缓冲 数据的四种存储方式 自动存储 示例 静态存储 动态 ...
- 不朽凡人 正文 第四百八十九章 三个条件
"咔嚓!"劳采早已顾不上规则符,仙元疯狂鼓动,就是精血也开始燃烧.只是没等他挣脱莫无忌这一拳,他的规则符就直接碎裂. "嘭!"一道血雾闪过,劳采堂堂一个金仙修士 ...
- [篇五章三]-关于 Windows 10 安装好后系统自带的微软输入法没有输入框的 BUG 解决办法
################################################## 目录 关于 Win 10 系统微软输入法没有输入框只能盲打这件事 图文解决教程 只需要在设置中打开 ...
最新文章
- oracle非归档模式下如何备份,Oracle之RMAN数据库在非归档模式下的备份和恢复
- C#/Net代码精简优化技巧
- Mysql高级之触发器
- webpack -v 指令报错
- 【Markdown编辑器】LaTeX公式教程
- SpringMVC-Helloworld 的归纳理解
- FM算法python实现
- 包管理工具conda极简教程
- console 速查手册
- 解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题
- (转)MFC消息机制
- android NDK安装
- Linux下出现command not found的解决办法
- SJCcopula matlab,时变copula的matlab程序
- 电话录音系统服务器 显示断线,电话录音系统不稳定解决方法?
- win10添加开机启动项_Win10+Deepin双系统开启启动项调整
- 基于VUMAT复合材料夹层结构冲击仿真
- 电脑垃圾太多?这几个清理电脑的软件来看看吗?
- C# 读取txt文件生成Word文档
- 如春日细雨般的缠绵,浸润心扉
热门文章
- ARKit入门到精通-1.5 -基础内容-史小川-专题视频课程
- 这10个比较好用的服务器管理软件你都知道吗?
- c语言编写词库_藏拙简易中文分词服务器(C语言开发+词库+源代码)
- (八)flax Engine游戏引擎物理引擎——物理碰撞器
- duilib开发(九):定时器和超链接
- jquery audio在微信或者客户端需要点击两次才能正常播放的问题解决方案
- 技术交底书(二)-----一种基于移动终端的安全防护系统
- 判断浏览器版本,当浏览器版本过低时提示升级浏览器,不显示原来页面内容
- html鼠标经过小手,css鼠标小手
- HBase数据库结构、存储理解(举例解释、容易理解、深入浅出)