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

一、第一个Go程序

我们第一个Go程序以最简单的Hello world作为开始。所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go。

二、程序结构分析

Go语言程序一般由关键字、包、常量、变量、运算符、符号、类型和函数组成。在这个程序仅涉及到关键字、包、符号和函数,以下对这些内容做简要介绍。这些内容的详细介绍以及常量、变量、运算符、类型等知识点在后面章节逐一展开。

2.1 关键字

关键字只能在特定的语法结构中使用,不能用于自定义名字。在Go语言程序里,有25个内置关键字和36个预定义标识符,如表1和表2所示。

在这个程序里涉及到的关键词有:package、import、func。

◆ package

声明该程序所属的包,类似于其它语言的库或者模块。

◆ import

导入需要的第三方包。例如这个程序通过导入第三方包fmt实现格式化输出。

◆ func

函数声明的关键字。

2.2 包

2.21 声明包

每个Go程序的第一行代码都是用于声明此程序所属的包。一般程序关于包的声明格式为:

package 包名

在工程管理那一章里,我们介绍了Go语言一个特殊的包——main包,它包含了main()主函数。这个程序的第一行代码就是对main包的声明:

package main

2.22 导入包

如果这个程序需要用到第三方包中的信息,就需要导入第三方包。例如,在这个程序里需要使用第三方包fmt中的函数来格式化输出,因此需要导入fmt:

import "fmt"

2.23 符号

当一个程序需要导入第三方包时,第三方包的包名要用到一个双引号;如果一个程序需要导入多个第三方包,则导入格式中还需要用到小括号。例如:

import (
    "fmt"
    "strconv"
)

2.4 函数

2.4.1 函数的声明

函数是Go程序里重要的一部分,函数包括内置函数和自定义函数,在后面章节会重点介绍函数的相关知识。函数声明的关键词是func,一般函数的定义包含以下部分:

func 函数名(参数列表)(返回值列表) {
    // 函数体
}

本程序里包含一个特殊的函数——main()函数。main()函数是Go可执行程序的起点,main是函数名,参数为空,没有返回值。

func main() {
    // 函数体
}

2.4.2 导入包的函数的调用

调用导入包的函数格式:

包名.函数名

这里调用了包fmt中的Println()函数,Println()函数位于第三方包,函数首字母大写,可以被当前包调用:

fmt.Println()

2.5 行注释和快注释

在Go语言程序代码中,为了提高程序代码的可读性,需要对一个语句、程序段、函数等进行解释说明或提示,这种解释说明或提示就叫做注释。Go语言程序的注释有两种:行注释和块注释。

行注释:注释语句用一行就可以结束,一般用“//行注释内容”表示。

块注释:注释语句需要多行,一般用“/*块注释内容*/”表示。

三、Go语言程序格式书写规范要求

◆ 首字母(包括全局变量名、函数名、结构体类型名、结构体成员变量名)大写的可以由package外部访问,首字母小写的只能在package内部访问;
◆ 句尾一般不需要“;”,如果一行写多条语句用“;”隔开;
◆ “{”必须和func在同一行;
◆ 所有的标点符号都必须是英文格式。

参考资料:
[1] (美)艾伦A.A.多诺瓦(Alan A. A. Donovan),(美)布莱恩W.柯尼汉(Brian W.Kernighan)著;李道兵等译.—北京:机械工业出版社,2017.1(2017.12重印):20
[2] 许式伟,吕桂华.Go语言编程[M].北京:人民邮电出版社,2012:11.

原文地址:https://www.cnblogs.com/efish/p/10489112.html

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

区块链基础语言(五)——Go语言结构的相关文章

1.2 区块链基础知识

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

区块链开发(五)区块链ICO:互联网进化的驱动力

区块链开发(五)区块链ICO:互联网进化的驱动力 李赫 2016年10月8日 由于区块链不可篡改的特性,在众多区块链组织和公司的共同努力下,互联网将逐步从中心化的信任进化到由算法.数据为核心的去中心化信任.随着中心化的信任中介被逐渐削弱和替代,互联网的运作方式将被以区块链为代表的系统所改变.因此,区块链不仅是一种技术,更是一个关于互联网进化的故事,尽管这个故事还有些遥远,但它已经有了萌芽和初步的发展. 区块链ICO,正是符合去中心化趋势,通过全球众筹,可以将沉淀在全球的小额资金充分利用起来,形成

区块链基础知识

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

第13讲 | 深入区块链技术(五):PoS共识机制

上一篇我们讲到了PoW共识机制,这一篇我们就来分享另外一种共识机制,PoS共识机制. PoS全称是Proof of Stake,中文翻译为权益证明.这一篇我们会将PoS与PoW对比讲解,帮助你加深理解. PoS的由来 PoS最早出现在点点币的创始人Sunny King的白皮书中,它的目的就是为了解决使用PoW挖矿出现大量资源浪费的问题.PoS共识机制一经提出就引起了广泛关注,Sunny King 也基于PoW的基础框架实现了第一代PoS区块链:点点币. PoW的具体实现有很多版本,但它们大多只是

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

一.类型分类 数据类型分为基本类型和复合类型.基本类型包含:布尔型.数值型(整数型.浮点型.复数型).字符串型.函数型.函数型在函数章节再介绍. 复合类型包含:指针.数组.切片.字典.结构体.通道.接口.复合类型在后面章节再逐一介绍. 二.基本类型 在计算机信息技术中,字节是计量存储容量的一种计量单位,通常情况一字节有八位二进制数.而每个类型的值至少占一个字节的内存空间.在Go语言中,当一个变量或者新值被创建时,如果没有为其明确指定初始值,则Go语言会自动针对此类型取默认值,此默认值就是零值.

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

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

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

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

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

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

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

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