区块链基础语言——go语言结构(代码片段)

efish efish     2023-03-09     763

关键词:

一、第一个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.

区块链技术go语言——变量篇(代码片段)

/**@Author:mrtao*@Date:2018-08-1110:56:38*@LastModifiedby:mrtao*@LastModifiedtime:2018-08-1211:04:04*/packagemainimport"fmt"funcmain() varaint a=20 fmt.Println("a=& 查看详情

基于go语言构建区块链:part1(代码片段)

Golang语言和区块链理论学习完毕后,快速入门方法无疑是项目实战。本文将参考https://jeiwan.cc/tags/blockchain/教程,学习如何基于Go语言构建区块链。1、编程环境设置编程工具使用GoLand,前文已介绍软件安装经验。软件安装完成后... 查看详情

区块链技术go语言——数组篇(代码片段)

/**@Author:mrtao*@Date:2018-08-1414:48:25*@LastModifiedby:mrtao*@LastModifiedtime:2018-08-1415:55:51*/packagemainimport"fmt"funcmain() //指针 varp*int a:=10 p=&a //p& 查看详情

[go]用go语言实现区块链工作原理(代码片段)

...理这里就不写了,只写一个简单demo的实现首先得有一个区块用来存储区块头和区块体typeBlockstructVersionint64PreBlockHash[]byteHash[]byte//区块体内是不存储HASH值的,这是网络中某个节点在计算时存储在息本地的,这里是为了方便实现最... 查看详情

区块链基础语言——go语言变量(代码片段)

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

[易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现btc区块链](代码片段)

...|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]项目实战实战4:从零实现BTC区块链我们今天来开发我们的BTC区块链系统。简单来说,从数据结构的角度上来说,区块链,就是区块组成的链。以下就是BTC区块链典型... 查看详情

用go语言撸一个简易版的区块链(代码片段)

用go撸一个简易版的区块链引言这个最初的版本时多年以前学习go的时候,自己撸的一个简易版本的区块链。不过麻雀虽小,五脏俱全。通过这个代码你了解区块链内部的大概运行机制时没有问题的。比特币底层区块链的... 查看详情

用go语言撸一个简易版的区块链(代码片段)

用go撸一个简易版的区块链引言这个最初的版本时多年以前学习go的时候,自己撸的一个简易版本的区块链。不过麻雀虽小,五脏俱全。通过这个代码你了解区块链内部的大概运行机制时没有问题的。比特币底层区块链的... 查看详情

go语言凭什么是区块链的首选语言(代码片段)

GO语言凭什么是区块链的首选语言区块链的火热也带动了GO语言开发者的突增,那凭什么GO语言会成为最主要的区块链构建语言之一。我认为这得益于GO语言的性能、抽象度、简单性和现代性。并且,当下最成功、最流行的... 查看详情

通学区块链系列-从go开始之面向对象(代码片段)

通学技术,面向区块链编程我们都知道,这个世界都是有一个个对象构成的,作为要描绘现实世界的编程语言来说,怎么来表征一个对象,显得尤为重要。我们都知道java是通过类的方式来表征对象的,那... 查看详情

区块链技术语言(二十三)——go语言面向对象:方法

封装是面向对象三大特性之一。封装的好处,一个是增加代码内聚性,就是将数据和对数据的操作封装在一起,提高可复用性和可维护性;还有就是信息隐藏,就是把不该暴露的信息藏起来,通过访问控制来隐藏数据,不被外界... 查看详情

通学区块链系列-从go开始之面向对象(代码片段)

通学技术,面向区块链编程我们都知道,这个世界都是有一个个对象构成的,作为要描绘现实世界的编程语言来说,怎么来表征一个对象,显得尤为重要。我们都知道java是通过类的方式来表征对象的,那... 查看详情

区块链基础语言——go语言工程管理

一、工作区‍在《Go语言开发环境搭建》中已经讲述了GOPATH的设置。GOPATH就是自定义的工作区目录,该目录包含3个子目录:src目录存放源代码(比如以.go、.c、.h、.s结尾的源代码文件)pkg目录存放编译后生成的文件,即由goinsta... 查看详情

go语言结构体(代码片段)

...体成员方法四、模拟构造函数五、Go语言方法和接收器5.1基础概念5.2为结构体添加方法六、为任意类型添加方法七、Go语言使用事件系统实现事件的响应和处理7.1基础概念7.2方法和函数的同一调用7.3事件系统的基本原理7.4事件的... 查看详情

通学区块链系列-从go开始容器篇(代码片段)

通学技术,面向区块链编程在上篇文章中,我们介绍了go语言的基本语法。这节我们重点来看看go之容器数据结构的用法。学过java的小伙伴应该都只要有一节很重要的知识,那就是集合。而go与之对应的就是容器,不过... 查看详情

区块链特辑——solidity语言基础(代码片段)

Solidity语法基础学习九、实战项目(一):学以致用UP主捐款合约·合约要求:  ·建立时,需将合约的建立者设定成owner(constructor,msg.sender)  ·需记录每个观众的捐款总额(mapping)  ·每次收到捐款时,需触发捐款事件:(... 查看详情

新人必看区块链开发零基础必备技能之go语言

近年来,区块链技术正在经历快速发展,并吸引了超过10亿美元的投资规模。而我们认为,最值得重视的是,区块链正在走进金融机构、大型企业、政府决策层的视野,大有从“草根力量”引发经济变革的态势... 查看详情

只用200行go代码写一个自己的区块链!(代码片段)

区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的。这篇文章就是帮助你使用Go语言来实现一个简单的区块链,用不到200行代码来揭示区块链的原理!高可用... 查看详情