go语言数值类型及布尔类型

常量

常量声明
常量是程序在编译时就肯定的值,程序在执行时不能修改常量的值。声明常量使用关键字const。在声明常量时,须要对常量赋值。
const 名称 类型 = 值 或
const 名称 = 值 自动作类型推断html

const aa int = 123 //正确
const aa = 123 //正确
const aa int   //错误

枚举
go语言没有提供枚举类型,能够借助常量来定义, iota默认值是0,在一组const定义中每次+1,编程

const (
        E int = iota // 东 0
        W            // 西 1
        S            // 南 2
        N            // 北 3
    )

    const (
        E1 int = iota + 3 // 东 3
        W1                // 西 4
        S1                // 南 5
        N1                // 北 6
    )

变量

变量是编程语言的重要组成元素,变量至关于内存空间的一个别名,在程序执行时,根据声明的变量,会在内存中开辟这样的一块存储单元。
变量声明
变量声明定义了内存中存储的规则和规范,如,var aa int8的意思是请在内存中给我一块1byte的长度的存储单元,我要用来存储数字的转化后的补码,这里的声明,至关于定义,至关于盖房子画的图纸,在初始化时,真正的落实和执行。可是在基本类型声明时,会直接对其作初实化,也就是说,对于基本类型,在使用var声明时,声明和初始化是一块儿作的。
声明的语法
直接声明式
var 变量名 类型
类型推断式
var 变量名 = 值
简短声明(该种方式只能用于局部变量)
变量名 := 值编程语言

变量初始化
变量初始化是刚在上文说的开辟内存空间,符初值,整型类型默认的初值为0,也能够在声明时对其设定
例:函数

var aa int8 = 8
var bb = 11
cc := 3

在基本类型中,变量的声明和初始化其实是一步,这里之因此分开阐述是为了说明实际上这是两步操做
变量赋值
在声明了变量后,就能够修改变量的值
变量的赋值很简单,使用=进行赋工具

注意
已经声明了的变量不能对其再次声明
如:ui

var aa int = 8
var aa int8

整型

当咱们要把一个值变成计算机能够识别的处理,须要肯定两点编码

  1. 存储的编码方式
  2. 存储的长度

对于整型数据,在计算机内部是以补码的方式,存储长度,go语言的提供的多种长度不一样的整型数据类型。以下:spa

类型 长度
int8 1byte
int16 2byte
int32 4byte
int64 8byte
int 根据系统位数,4byte或8byte
uint8 1byte
uint16 2byte
uint32 4byte
uint64 8byte
uint 根据系统位数,4byte或8byte
byte 1byte
rune 4byte

根据以上的内存单元的规范和咱们已知的补码知识,能够获得每种类型的存储范围
在位计算中再作详细的展开。调试

浮点型

go语言支持的浮点型有两种float32,float64两种数据类型,它们的算术规范由IEEE754浮点数国际标准定义。
float32在内存分配4byte用于存储,float64内存中分配8byte用于存储。那么怎么分配这些存储单元,也就是编码规范。
看下它的国际标准是怎么定义的,参考阮一峰博客
code

存储的编码规范又是怎么定义的呢?
[](https://liushaobo-image-bk.os...

以上对浮点型数据的编码规范和存储作了说明。

复数型

go语言提供了复数数据类型complex64和complex128,这个在平时的代码中不多用的到,在此不作展开

布尔型

在一些编程语言中,没有bool类型使用0或1来标示go语言中的bool类型占一个存储单元
那个在内存中存储的是什么样?
经过gdb调试工具,进入内存中,一探究竟。

计算符

一台标准的冯诺伊曼模型计算机,有cpu,寄存器, 内存,I/O设备组成,cpu和积存器组成了计算单元,内存是数据的存储单元,I/O设备是和做为计算机的入口和出口同外部进行交互。
数值计算的基本运算符有加,减,乘,除,模运算,在go语言中分别对应,+,-,*,/,%
在计算机内部是怎么完成运算的?该篇幅将单独做为一个专题作后文中详细展开。在此咱们只须要知道,经过计算符链接的变量最终都会被转化为cpu的逻辑运算。

控制台输入输出

上文分别介绍了内存和计算符,那么怎么将计算的结果打印出来,也就是将内存中值,经过I/O设备输出?
go语言中内置的语言包中提供了这样的函数,咱们只须要调用该函数,便可完成I/O操做。
在fmt包下有Scanln()用于输入,Println()用于输出。

总结

以上介绍了go语言的常量及变量的声明,及基本类型的内存存储方式作了总结和实验

喜欢请关注"云端漫记", 持续为你更新
图片描述

相关文章
相关标签/搜索