GoLang 学习笔记 - 基本数据类型

凉丶心园 · · 564 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

GoLang 的数据类型

  在 GoLang 中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

  GoLang 有以下几种数据类型:

类型 描述
布尔 基本数据类型,只有两个值,并且只可以是常量 —— true 或者 false
数值 基本数据类型,GoLang 支持整型、浮点型数字,并且支持复数,其中位的运算采用补码。
字符串 基本数据类型,GoLang 中 string 类型被官方定为基本数据类型,是一串由单个字节连接起来的字符序列。GoLang 字符串的字节使用 UTF-8 编码标识 Unicode 文本。
派生 派生类型包括很多种,其中有:指针、数组、结构体、管道、切片、接口、集合 。(关于派生数据类型会有单独的篇章来讲解,这里不赘述。)

数值类型

整型

类型 描述
int 基于架构的类型,长度根据宿主机的机器字长决定,在 32 位操作系统上为 32 位,在 64 位操作系统上为 64 位
int8 有符号 8 位整型 (-128 到 127)
int16 有符号 16 位整型 (-32768 到 32767)
int32 有符号 32 位整型 (-2147483648 到 2147483647)
int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
uint 无符号整型,长度同 int
uint8 无符号 8 位整型 (0 到 255)
uint16 无符号 16 位整型 (0 到 65535)
uint32 无符号 32 位整型 (0 到 4294967295)
uint64 无符号 64 位整型 (0 到 18446744073709551615)
rune 和 int32 类型等价,Unicode 字符类型,通常用于表示一个 Unicode 码点。rune 和 int32 可以互换使用。
byte 和 uint8 类型等价,byte类型一般用于强调数值是一个原始的数据而不是 一个小的整数。GoLang 中 byte 类型可以用于表示字符(char)。
uintptr 一种无符号的整数类型,没有指定具体的bit大小但是足以容纳指针。 uintptr类型只有在底层编程是才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。

浮点型

类型 描述
float32 32位浮点数 (约 - 3.4003e + 38 到 3.4003e + 38)
float64 64位浮点数 (约 - 1.798e + 308 到 - 1.798e + 308)

复数类型

类型 描述
complex64 32 位实数和虚数
complex128 64 位实数和虚数

布尔类型

  bool 类型表示真假值,只能为 truefalse 。通常用来控制程序流程,在逻辑运算、迭代和递归中经常使用。注意,GoLang 中的布尔值不能用零和非零来表示。

字符串类型

字符

  • Golang 中没有专门的字符(char)类型,如果要存储单个字符 (数字或字母) ,一般使用 byte 来保存。
  • 字符( byte )直接输出时,输出的是对应字符的 ASCII 码值。
  • 可以直接给某个变量赋值一个数值,然后按格式化输出时 %c ,会输出该数字对应的 Unicode 字符。
  • GoLang 的字符和字符串使用 UTF-8 编码,英文字母占一个字符,汉字占三个字符。
  • 当保存的字符 ASCII 码值大于 255,如汉字,byte 类型就无法保存,此时可以使用 uint 或 int 类型保存。

字符串

  • 不能用单引号 ' 包裹,如果遇到用单引号包裹的,则是字符(用 byte 类型声明),不是字符串。
  • 字符串一旦赋值了,就不能修改,只能重新赋值。
  • 字符串有两种标识形,用双引号包裹 "abcd\n" 和 用反引号包裹 `abcd\n` 。用双引号包裹的字符串可以识别转义字符(即输出 abcd 后会换行),用反引号包裹的字符串则以原生形式输出,包括换行和特殊字符(即输出 abcd\n),可以实现防止攻击、输出源代码等效果。




以上内容来源于网络,并加上自己的实践和理解,如有错误的地方,请在评论区指正。
本篇内容来自 [菜鸟教程]https://www.runoob.com/go/go-data-types.html

上一篇 [GoLang - 基础语法]https://www.jianshu.com/p/0c815bed6abe


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:凉丶心园

查看原文:GoLang 学习笔记 - 基本数据类型

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

564 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传