参考书《Go程序设计语言》,Go学习路径的Go基础模块,整理了一些我掌握不太好的地方

  1. 计算机的底层是位(bit),而实际操作是基于大小固定的单元中的数值,称为字(word),可以解释为整数,浮点数,位集(bitset)或内存地址等。
  2. 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 无法隐式转换为数值,反之也不行
  1. 字符串字面量

    • s[i, j]生成子串
    • 使用utf8编码,非ascii字符码点需要两个或多个字节
    • 可以用加号连接字串
    • 字串间可以比较
    • 字串可以赋值,不可改变,这意味着两个字串可以共用一个底层
    • ``原样字串,忽略换行
  2. 编码

    1. ASCII码:7位表示128个字符

    2. Unicode码:包含世界上所有字符,各自有一个叫Unicode码点的标准数字,go中称为文字符号(rune),大约有十二万字符,int16存不下,int32刚好可以,也就是rune。我们可以让每个字符都占32位,即utf32,但是太浪费了,所以采用了utf8编码。

    3. UTF-8编码:每个字符用1-4个字节表示,go中允许如下表示。

      \xhh h式十六进制数字,大小写皆可,且必须是两位

      \ooo 八进制,必须使用三位数字,且不超过\377

      \uhhh 16位码点值

      \Uhhhhhhhh 32位码点值

      当[]rune作用于utf8编码的字串时,返回unicode码点序列

  3. 字符串和字节切片

    1. strings包:搜索,替换,比较,修整,切分,连接字符串

    2. bytes包:类似strings用于操作[]byte类型

    3. strconv包:布尔值,整数,浮点数与字符串间的转换,还有为字符串添加/去除引号的函数

    4. unicode包:有判别文字符号值特性的函数,如IsDigit,IsLetter,IsUpper,IsLower

    5. 字符串可以和字节切片相互转换

      s := "abc"
      b := []byte(s)
      s2 := string(b)
      
  4. 字符串和数字的相互转换

    1. 整数转字符串

      1. fmt.Sprintf

      2. strconv.Itoa

      x := 123
      y := fmt.Sprintf("%d",x)
      fmt.Println(y,strconv.Itoa(x)) //“123 132”

      1. 按不同进位制格式化数字
        fmt.Println(strconv.FormatInt(int64(x),2)) //"1111011"

        fmt.Printf里的%b,%d,%o,%x往往比Format方便

        s := fmt.Sprintf("x=%b",x) //"x=1111011"

    2. 字符串转整数

      x,err := strconv.Atoi("123")   //x是整形
      y,err := strconv.ParseInt("123",10,64)   //十进制,int64类型
      
  5. 常量

    1. 常量是一种表达式,在编译阶段就计算出表达式的值,常量本质上都属于基本类型,对于常量操作数,所有数学运算,逻辑运算和比较运算后的结果依然是常量

    2. const (a = 1bc = 2d
      )           //a=1 b=1 c=2 d=2
      
    3. const (_ = 1 << (10 * iota)KiB    //1024MiB   //1048576
      )
      
    4. 无类型常量精度可以很高,常量声明(包扩短变量声明)都是有类型的,const a = 1024这样没有
      欢迎访问我的主页

《Go圣经》章三:基本数据相关推荐

  1. 现实迷途 第十三章 三兵一帅

    第十三章 三兵一帅 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 看到小小的办公室里加多了三个人,江北感觉心情不错,他终于不是一个光杆老总了,而是手下有了三个兵了,三个新同事都客气地 ...

  2. 读书笔记:汇编语言 第三版 王爽 清华出版社 前言 章一 章二 章三 章四 章五

    汇编语言 第三版 王爽 清华出版社文档记录创建 2020年8月9日15:21:11初稿完成 2020年9月5日15:38:22前言汇编语言,CPU提供的机器指令的助记符的集合不同处理器,机器指令可能不 ...

  3. 【贪玩巴斯】Unity3D初学圣经(三)—— unity中的基础概念——scene场景,component组件,assets文件夹和Material材质,Mesh Renderer与shader

    [贪玩巴斯]Unity3D初学圣经 三-- unity中的基础概念--scene场景,component组件与assets文件夹和Material材质以及Mesh Renderer 和 shader ...

  4. 第三十二章 三更雪压飞狐城(一之全)

    高耸的太行山脉从宋朝境内黄河北岸的王屋山,一直向东北蜿蜒,迄于北方辽国境内的燕山山脉,正好成为世界岛东部黄河大平原与河东高原之分界.太行山脉的西侧,坡度徐缓,而东侧则十分陡峻.但这长达数千里的山脉中, ...

  5. 协议圣经 RTSP(三)

    rtsp协议 所有代码实例可能使用go c c++ java nodejs 等任何一种语言 协议捕获使用wireshark Real Time Streaming Protocol 实时流协议.这个协 ...

  6. 传感器自学笔记第十一章——三色RGB学习笔记+高感度声音检测模块+KY-010光遮断传感器+TCRT5000循迹传感器+倾斜模块

    作者:GWD 时间:2019.06.28 三色RGB学习笔记(开关量类传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:RGB LED 模块由一个贴片全彩 LED 制成,通过 R ...

  7. [篇二章三]_Windows 11 安装报错指南

    ################################################## 目录 Windows 11 安装前一系列报错问题 前言 一些经常遇到的问题比如不支持硬件需求 当前 ...

  8. c++ day5 第四章 (三)动态结构,存储类型,数组替代品

    文章目录 用new分配动态结构 示例1 使用成员运算符和间接成员运算符访问结构成员 示例2 动态分配内存,以存储多个字符串,只需一个数组作为输入缓冲 数据的四种存储方式 自动存储 示例 静态存储 动态 ...

  9. 不朽凡人 正文 第四百八十九章 三个条件

    "咔嚓!"劳采早已顾不上规则符,仙元疯狂鼓动,就是精血也开始燃烧.只是没等他挣脱莫无忌这一拳,他的规则符就直接碎裂. "嘭!"一道血雾闪过,劳采堂堂一个金仙修士 ...

  10. [篇五章三]-关于 Windows 10 安装好后系统自带的微软输入法没有输入框的 BUG 解决办法

    ################################################## 目录 关于 Win 10 系统微软输入法没有输入框只能盲打这件事 图文解决教程 只需要在设置中打开 ...

最新文章

  1. oracle非归档模式下如何备份,Oracle之RMAN数据库在非归档模式下的备份和恢复
  2. C#/Net代码精简优化技巧
  3. Mysql高级之触发器
  4. webpack -v 指令报错
  5. 【Markdown编辑器】LaTeX公式教程
  6. SpringMVC-Helloworld 的归纳理解
  7. FM算法python实现
  8. 包管理工具conda极简教程
  9. console 速查手册
  10. 解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题
  11. (转)MFC消息机制
  12. android NDK安装
  13. Linux下出现command not found的解决办法
  14. SJCcopula matlab,时变copula的matlab程序
  15. 电话录音系统服务器 显示断线,电话录音系统不稳定解决方法?
  16. win10添加开机启动项_Win10+Deepin双系统开启启动项调整
  17. 基于VUMAT复合材料夹层结构冲击仿真
  18. 电脑垃圾太多?这几个清理电脑的软件来看看吗?
  19. C# 读取txt文件生成Word文档
  20. 如春日细雨般的缠绵,浸润心扉

热门文章

  1. ARKit入门到精通-1.5 -基础内容-史小川-专题视频课程
  2. 这10个比较好用的服务器管理软件你都知道吗?
  3. c语言编写词库_藏拙简易中文分词服务器(C语言开发+词库+源代码)
  4. (八)flax Engine游戏引擎物理引擎——物理碰撞器
  5. duilib开发(九):定时器和超链接
  6. jquery audio在微信或者客户端需要点击两次才能正常播放的问题解决方案
  7. 技术交底书(二)-----一种基于移动终端的安全防护系统
  8. 判断浏览器版本,当浏览器版本过低时提示升级浏览器,不显示原来页面内容
  9. html鼠标经过小手,css鼠标小手
  10. HBase数据库结构、存储理解(举例解释、容易理解、深入浅出)