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

一、变量名

1.1 命名规则

为提升代码可读性和可维护性,多采用统一的、可读性高的命名方式。Go语言变量名由一个或多个字母、数字、下划线组成的序列,但第一个字符必须是字母或下划线,不能是数字,且区分大小写。例如:1a不能作为变量名,myname和myName是不同的变量名。

1.2 命名风格

命名风格有多种,常见的有驼峰式命名和下划线命名,而Go语言拥护驼峰命名法,排斥下划线法。驼峰命名法分为两种:

? 大驼峰式命名:用大写字母分隔语义,首写字母大写,例如HelloWorld;

? 小驼峰式命名:用下划线分隔语义,首写字母小写,例如helloWorld。

二、变量的本质

程序中通过定义一个变量来申请一块数据存储空间。变量名即对一块数据存储空间的命名,通过引用变量名就可以使用这块存储空间。

三、单变量的声明和赋值

3.1 单变量的声明

变量声明的关键词是var,和其他语言的区别在于,变量名应放在变量类型之前。其声明格式为:

var v_name v_type

注:var是关键词,v_name是变量名,v_type是变量的值类型(在Go语言数据类型章节介绍过的类型),例如:var a int。

3.2 单变量的赋值

单变量的赋值方式有三种,如表1。

注:a. 方式1中的赋值语句“a = 10”是执行语句,必须放在函数体内;

b. 方式3只能在函数体内使用;

c. 变量如果仅声明却不赋值,则变量取对应值类型的零值。

四、多变量的声明和赋值

4.1 多变量的声明

多变量声明的关键词是var,变量的类型不一定都相同,其声明格式如表2。

注:多变量仅声明不赋值,则变量取默认值。

4.2 多变量的赋值

多变量的赋值方式有五种,如表3。

注:a. 方式1的赋值语句“a, b, c = 1, 2, 3”和方式2的赋值语句“ a, b, c = 1, 2, “3””是执行语句,必须放在函数体内;

b. 方式4只能在函数体内使用;

c. 多变量如果仅声明却不赋值,则变量取对应值类型的零值。

五、匿名变量

下划线用于占位,表示对某个值的抛弃,例如后面函数章节会介绍:函数有多返回值,在函数返回值中使用下划线表示不使用它的值。

例如:在“_, a := 1, 2”中,1被抛弃,a = 2。

六、变量的类型转换

变量的类型转换,就是将一种数据类型的变量转换为另一种类型的变量。但是Go语言不支持隐式转换,即所有类型转换都必须显式声明,而且类型转换只能发生在两种相互兼容的类型之间。

部分可以转换的类型如表4。

参考资料

[1] 许式伟,吕桂华.Go语言编程[M].北京:人民邮电出版社,2012:20-21.

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

时间: 2024-09-27 08:10:40

区块链基础语言(七)——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

区块链开发(七)从某保险积分案例谈区块链应用的风险与挑战

本文以现有的真实区块链应用案例为切入点,通过分析技术架构和实际数据验证,尝试性的测试了其风险,并对未来区块链应用所面临的不同风险进行了研究和探讨,最后针对不同的风险类型,尝试性的提出了相关的建议. 一.某保险区块链积分体系架构 1. 某保险积分应用简介 某保险于2016年3月采用区块链技术作为底层技术架构推出了"阳光贝"积分,用户在享受普通积分功能的基础上,还可以"发红包"的形式将通过积分向朋友转赠.与其他公司发行的区块链积分互换.某保险可以说是国内第一家区块链技术

cpp 区块链模拟示例(七) 补充 Merkle树

Merkle 树 完整的比特币数据库(也就是区块链)需要超过 140 Gb 的磁盘空间.因为比特币的去中心化特性,网络中的每个节点必须是独立,自给自足的,也就是每个节点必须存储一个区块链的完整副本.随着越来越多的人使用比特币,这条规则变得越来越难以遵守:因为不太可能每个人都去运行一个全节点.并且,由于节点是网络中的完全参与者,它们负有相关责任:节点必须验证交易和区块.另外,要想与其他节点交互和下载新块,也有一定的网络流量需求. 在中本聪的 比特币原始论文 中,对这个问题也有一个解决方案:简易支付

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

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

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

一.类型分类 数据类型分为基本类型和复合类型.基本类型包含:布尔型.数值型(整数型.浮点型.复数型).字符串型.函数型.函数型在函数章节再介绍. 复合类型包含:指针.数组.切片.字典.结构体.通道.接口.复合类型在后面章节再逐一介绍. 二.基本类型 在计算机信息技术中,字节是计量存储容量的一种计量单位,通常情况一字节有八位二进制数.而每个类型的值至少占一个字节的内存空间.在Go语言中,当一个变量或者新值被创建时,如果没有为其明确指定初始值,则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].超级账本 本身不是一个完整的区块链系统,而是方便企业搭建自己的区块链框架.各个组件,如数据存储,共识算法等,都可以灵活替换与组装.对智能合约也有很好的支持. 因此常被