区块链基础语言(六)——Go语言数据类型

一、类型分类

数据类型分为基本类型和复合类型。
基本类型包含:布尔型、数值型(整数型、浮点型、复数型)、字符串型、函数型。函数型在函数章节再介绍。

复合类型包含:指针、数组、切片、字典、结构体、通道、接口。复合类型在后面章节再逐一介绍。

二、基本类型

在计算机信息技术中,字节是计量存储容量的一种计量单位,通常情况一字节有八位二进制数。而每个类型的值至少占一个字节的内存空间。
在Go语言中,当一个变量或者新值被创建时,如果没有为其明确指定初始值,则Go语言会自动针对此类型取默认值,此默认值就是零值。

2.1 布尔型

注:a. 布尔型值只能是true或false,不可以用数字代

b. 布尔型值的零值为false
c. var是声明变量类型的关键词 。

2.2 数值类型

2.21 分类数值类型主要有四类:整数型、字符型、浮点型、复数型。

注:a. int、uint、uintptr占据的内存空间大小和操作系统有关:若操作系统是32位,则占用4个字节;若操作系统是64位,则占用8个字节;
b. 整数型和字符型的零值为0;浮点型的值有小数点,其零值为0.0;复数型的值有实部和虚部,其默认值为(0+0i)。

2.22 示例

2.3 字符串类型

字符串由一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的,字节采用UTF-8编码标识的Unicode文本。

注:字符串的零值为“”,不是“ ”(即双引号中间没有空格)。

三、类型别名

类型别名,即给类型定义一个新的类型名。

注:var是定义变量名的关键词,type是定义类型别名的关键词。

四、值类型和引用类型

公共语言运行库(Common Language Runtime,简称CLR)支持两种类型:值类型和引用类型。在Go语言里,引用类型包含:指针、切片、字典、通道、接口;基本类型(布尔型、数值型、字符串型、函数型)、数组、结构体均为值类型。

4.1 值类型值类型变量直接指向存在于内存中的值,当使用等号“=”将一个变量的值赋给另一个变量时,如j = i,实际上是在内存中将i的值进行了拷贝,如图1所示。

4.2 引用类型

一个引用类型的变量j存储的是i的值所在的内存地址(数字)或连续内存单元的首地址,那么这个内存地址或连续内存单元的首地址被称之为指针,而j就是指针变量,如j=&i。

参考资料:
[1] 许式伟,吕桂华.Go语言编程[M].北京:人民邮电出版社,2012:24-25.
[2] https://studygolang.com/articles/9851
[3] http://www.runoob.com/go/go-data-types.html

原文地址:https://www.cnblogs.com/efish/p/go-language-datatype.html

时间: 2024-08-30 14:43:31

区块链基础语言(六)——Go语言数据类型的相关文章

1.2 区块链基础知识

1.2.1  区块链相关术语 区块链板块主要更新一些专业技术.相关算法 及 技术实现. 其中一些的相关基础知识就不再做赘述了.  但是 我给大家搜集整理了一下  相关术语,想入门但对这个方向还是不是很了解的小伙伴,可以看一下下面的这个: <区块链行业字典> 1.2.2  区块链始祖--比特币技术 来自中本聪的比特币白皮书:<一种点对点的电子现金系统>中文版 1.2.3  区块链特性 去中心化:因为它是分布式存储的,所以不存在中心点,也可以说各个节点都是中心点,生活中应用就是不需要第

区块链基础知识

title: 区块链基础知识 date: 2019-12-31 21:18:44 tags: 区块链 categorys: 区块链学习 由于毕设要做关于区块链的题目,也挺烦兴趣.就在最近借了基本书,来补一下基础知识. 选的书 区块链技术原理及底层架构 北京航空航天大学出版社 陈东敏,郭峰,广红. 区块链 重塑新金融 清华大学出版社 赵增奎 宋俊典 等 Node.js区块链开发 机械工业出版社 朱志文 区块链技术原理及底层架构 ? 区块链起源于比特币,2008年11月1日,一位自称中本聪(Sato

区块链开发(六)区块链架构与应用PPT

这篇PPT是我在CSDN举办的线下沙龙<区块链技术与互联网金融的创新和挑战>的演讲PPT,主要面对初学者和行业应用者,后面CSDN的视频整理好后我会更新,主要汇聚了我在研究应用的中的一些体会.

第14讲 | 深入区块链技术(六):DPoS共识机制

上一篇文章里,我们讲解了PoS共识机制,这一篇我们来分享PoS的一个扩展机制,这个机制在业界也非常的流行,它叫做DPoS共识机制.DPoS全称是Delegated Proof of Stake,中文翻译过来是代理权益证明. 从BM开始聊起的故事 我们聊DPoS时,为什么要从BM聊起呢, 其实,这和聊比特币绕不开中本聪一样,DPoS是BM一手创造的.DPoS不是独立提出的共识算法,而是直接被BM应用到比特股项目中,在稳定运行了3年多后,又接着被BM构造成可复用的区块链工具箱:石墨烯. 虽然应用得很

区块链基础语言(七)——Go语言变量

一.变量名 1.1 命名规则 为提升代码可读性和可维护性,多采用统一的.可读性高的命名方式.Go语言变量名由一个或多个字母.数字.下划线组成的序列,但第一个字符必须是字母或下划线,不能是数字,且区分大小写.例如:1a不能作为变量名,myname和myName是不同的变量名. 1.2 命名风格 命名风格有多种,常见的有驼峰式命名和下划线命名,而Go语言拥护驼峰命名法,排斥下划线法.驼峰命名法分为两种: ? 大驼峰式命名:用大写字母分隔语义,首写字母大写,例如HelloWorld: ? 小驼峰式命名

区块链基础语言(五)——Go语言结构

一.第一个Go程序 我们第一个Go程序以最简单的Hello world作为开始.所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go. 二.程序结构分析 Go语言程序一般由关键字.包.常量.变量.运算符.符号.类型和函数组成.在这个程序仅涉及到关键字.包.符号和函数,以下对这些内容做简要介绍.这些内容的详细介绍以及常量.变量.运算符.类型等知识点在后面章节逐一展开. 2.1 关键字 关键字只能在特定的语法结构中使用,不能用于自定义名字.在Go语言程序里,有

区块链基础语言(四)——Go语言工程管理

一.工作区‍ 在<Go语言开发环境搭建>中已经讲述了GOPATH的设置.GOPATH就是自定义的工作区目录,该目录包含3个子目录: src目录 存放源代码(比如以.go..c..h..s结尾的源代码文件) pkg目录 存放编译后生成的文件,即由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件 bin目录 存放编译后生成的可执行文件,即通过go install命令完成安装后,保存由Go命令源码文件生成的可执行文件. 加到GOPATH,但此时需要用分隔符分隔.Wi

Go语言与区块链——阶段性学习建议

2019年Go语言与区块链 链接: https://pan.baidu.com/s/1rtstZKws3t9L8bcFZmUd3Q 提取码: gx1r 阶段一:区块链主流语言:Go语言开发实战 本阶段需要掌握Linux和Windows双系统开发环境,建立面向对象思维,能对问题进行抽象归类.掌握基础的并发理论. 主要内容包括有:Go语言介绍及开发环境搭.基础类型.运算符.流程控制.函数.工程管理.复合类型.面向对象编程.异常处理.文本文件处理.案例:开发实战. 阶段二:区块链后端技术体系:Go语言

001/Go语言构建区块链(mooc)

1.区块链发展与现状 视频地址:https://www.imooc.com/video/17452 注意: 比特币与以太坊最大的区别在于: 以太坊引入了对图灵完美智能合约的支持,人们可以将任何业务逻辑以合约的形式写入区块链,在以太坊前,发行自己的数字货币,就需要搭建一个独立的区块链网络. 比较稳定,被拿来研究的区块链系统: [1].超级账本 本身不是一个完整的区块链系统,而是方便企业搭建自己的区块链框架.各个组件,如数据存储,共识算法等,都可以灵活替换与组装.对智能合约也有很好的支持. 因此常被