3、做中学 | 二年级上期 Golang数据类型和常量/变量声明使用

一、基本数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。

数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

Go 基本数据类型

类别 类型 描述 零值 示例 取值范围
布尔型 bool 逻辑值,表示真或假 false true, false truefalse
整数型 int 平台相关有符号整数(32位系统=32位,64位系统=64位) 0 42, -10 32位系统:-2³¹ ~ 2³¹-1 64位系统:-2⁶³ ~ 2⁶³-1
int8 8位有符号整数 0 127, -128 -128 ~ 127
int16 16位有符号整数 0 32767, -32768 -32768 ~ 32767
int32 32位有符号整数(别名 rune 0 2147483647 -2147483648 ~ 2147483647
int64 64位有符号整数 0 9223372036854775807 -9223372036854775808 ~ 9223372036854775807
uint 平台相关无符号整数(大小同 int 0 100 32位系统:0 ~ 2³²-1 64位系统:0 ~ 2⁶⁴-1
uint8 8位无符号整数(别名 byte 0 255, 0x0A 0 ~ 255
uint16 16位无符号整数 0 65535 0 ~ 65535
uint32 32位无符号整数 0 4294967295 0 ~ 4294967295
uint64 64位无符号整数 0 18446744073709551615 0 ~ 18446744073709551615
uintptr 无符号整数,用于存储指针地址 0 系统内存地址 足够存储指针值的整数
浮点型 float32 IEEE-754 32位单精度浮点数 0.0 3.14, -0.001 ±1.18e⁻³⁸ ~ ±3.4e³⁸,精度约6位小数
float64 IEEE-754 64位双精度浮点数(默认浮点类型 0.0 3.1415926535, -2.5e10 ±2.23e⁻³⁰⁸ ~ ±1.8e³⁰⁸,精度约15位小数
复数型 complex64 由两个 float32 组成(实部+虚部) (0+0i) 1+2i, 3i 实部/虚部范围同 float32
complex128 由两个 float64 组成(实部+虚部) (0+0i) 1.5+3.2i 实部/虚部范围同 float64
字符串型 string 不可变的 UTF-8 字符序列 "" "Hello", "世界" 任意字节序列(支持 Unicode)
字节别名 byte uint8 的别名,用于二进制数据 0 'a', 0x41 uint8 (0 ~ 255)
字符别名 rune int32 的别名,表示 Unicode 码点 0 '中', '\u4e2d' int32(支持所有 Unicode 字符)

同其它编程语言一样,go的数据类型基本覆盖人类文化内容,数字、字符串、布尔、复数

二、常量

在go的国度中,根据上边的划定的范围,可以进行创建常量和变量了。先来看下常量...

go 复制代码
// 常量定义格式
const 常量名 [常量类型] = 值

学了其它编程语言的,看到这感觉不适应的,你的感觉没错,新的知识正在占领大脑!

从上边的定义格式,可以看到:

  1. const: 定义常量使用的是"const"关键词
  2. 常量名: 以后使用常量的话,尽量使用大写进行命名,并使用下划线分词
  3. 常量类型:只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
  4. \]中括号:可以进行省略,自动根据值进行类型推导

go 复制代码
	// 常量
	// 显式声明
	// const LENGTH int = 10

	// 隐式声明 根据值 进行推导出数据类型
	const Length = 10

	// 不能进行修改
	Length = 20

	fmt.Println(Length)

另外,对于多个相同类型的声明可以简写为:

go 复制代码
const Length, WIDTH = 10, 20

三、变量

变量怎么比喻呢?

我这边为了更好的理解,使用了上边的老中医药材柜图片,如果把各种各样的数据看作是各种药材的话!

每个抽屉代表go开辟的内存空间,进行储存药材(变量值),而外边的名称就是变量名(见名识意)!

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

声明变量的一般形式是使用 var 关键字:

go 复制代码
var 变量名 变量类型

可以了解到:

  1. var:声明变量使用"var"关键词
  2. 变量名:由字母、数字、下划线组成,其中首个字符不能为数字
  3. 变量类型:基本数据类型和符合类型
  4. 值:上边没有赋值,后续进行赋值操作。如果声明的时候进行赋值,可以省略变量类型,原因是go可以进行类型推导
go 复制代码
    // 变量

	// 变量声明
	// 第一种 声明后赋值
	var length int
	length = 10

	// 第二种 声明时赋值
	//var width int = 20
	// 也可以去掉 变量类型 使用类型推导
	var width = 20

	// 第三种 省略var  注意 := 左侧的变量名 是没有声明过的,否则编辑报错
	height := 30

	fmt.Println(length, width, height)

多个变量同时声明

go 复制代码
	// 多个变量声明 省略类型 进行类型推导
	var a, b, c = 10, 20.8, "hello"
	fmt.Println(a, b, c)

四、关键字

什么是关键字,就是go语言已经使用过的关键词,我们不能再使用了,命名包名、文件名、声明变量名、函数名等,为了避免冲突不能使用!

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

程序一般由关键字、常量、变量、运算符、类型和函数组成。

本次作业

  1. 熟练知道go的数据类型,说一个值,要立即反应出该值的数据类型
  2. 会声明常量/变量的
  3. 了解有哪些关键字,避免后续命名冲突
相关推荐
萌新小码农‍1 分钟前
SpringBoot新闻项目学习day3--后台权限的增删改查以及权限管理分配
spring boot·后端·学习
RPGMZ12 分钟前
RPGMZ游戏引擎 如何手动控制文字显示速度
开发语言·javascript·游戏引擎·rpgmz
想用offer打牌26 分钟前
一站式了解责任链模式🥹
后端·设计模式·架构
机器学习之心31 分钟前
三种经典算法无人机三维路径规划对比(SMA、HHO、GWO三种算法),Matlab代码实现
开发语言·sma·hho·gwo·无人机三维路径规划对比
小码编匠38 分钟前
面向工业应用的点云相机控制接口库(含C#调用示例)
后端·c#·.net
Luffe船长1 小时前
springboot将文件插入到指定路径文件夹,判断文件是否存在以及根据名称删除
java·spring boot·后端·spring
weixin_462176411 小时前
(三十一)深度解析领域特定语言(DSL)第六章——语法分析:递归下降语法分析器(Recursive-Descent Parser)
java·开发语言·软件构建
小刘同学++1 小时前
C++11 alignas 和 alignof 关键字
开发语言·c++
未来之窗软件服务2 小时前
js调用微信支付 第二步 获取access_token ——仙盟创梦IDE
开发语言·javascript·微信·微信支付·仙盟创梦ide·东方仙盟
比特层递2 小时前
C++: 输出Windows平台或Linux平台时间信息的函数
开发语言·c++