
go语言
文章平均质量分 80
魏红心
10年软件开发与管理经验,专注于区块链技术研究。
展开
-
【链块技术33期】区块链技术语言(二十五)——面向对象:接口
原文链接:区块链技术语言(二十五)——面向对象:接口 多态是面向对象的三大基本特性之一。多态是指对于不同的实例,同样的操作可能会有不同的表现形式。例如加法操作,如果操作的数据是数,那么它对两个数进行求和;如果操作的数据是字符串,那么它将连接两个字符串。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,那些操作可以通过相...原创 2018-09-05 18:46:37 · 390 阅读 · 0 评论 -
【链块技术21期】区块链基础语言(十三)——Go语言函数(上)
原文链接:区块链基础语言(十三)——Go语言函数(上) 函数这一章节主要分为五个部分讲解,分别为:内置函数、自定义函数、变量作用域、匿名函数与闭包、递归函数。本节讲解内置函数、自定义函数和变量作用域。一、内置函数1.1 常见的内置函数常见的内置函数如表1所示。1.2 内置函数的调用过程1.2.1 步骤第一步:先导入该函数所在的包;第二步...原创 2018-08-13 14:18:41 · 431 阅读 · 0 评论 -
【链块技术22期】区块链基础语言(十四)——Go语言函数(下)
原文链接:区块链基础语言(十四)——Go语言函数(下) 上一节介绍了内置函数、自定义函数和变量作用域,本节主要介绍匿名函数与闭包、函数的延迟调用、递归函数。 一、匿名函数与闭包1.1 定义匿名函数与闭包的定义如表1所示。注:a. 闭包就是通过匿名函数“捕获”和它在同一作用域的其它常量和变量。b. 当闭包被调用的时候,不管在程序什么地方调...原创 2018-08-14 16:28:40 · 478 阅读 · 0 评论 -
【链块技术23期】区块链基础语言(十五)——Go语言指针
原文链接:区块链基础语言(十五)——Go语言指针 一、基本概念1.1 内存地址电脑存储器由一个个存储单元构成,为了对存储器进行有效的管理,就需要对各个存储单元编号,即给每个单元赋予一个地址码,这叫编址。计算机里每个内存单元的地址码就是这个内存单元的内存地址。1.2 指针变量通过内存单元的内存地址能找到这个内存单元,那么这个内存地址叫作指针(P...原创 2018-08-15 16:21:41 · 358 阅读 · 0 评论 -
【链块技术24期】区块链基础语言(十六)——Go语言数组
原文链接:区块链基础语言(十六)——Go语言数组 数组是Go语言编程中最常用的数据结构之一。本节从以下角度介绍数组:数组的定义和基本要素、数组的声明和初始化、数组元素的编号及数组元素的获取和修改、数组变量之间的比较和赋值、指针数组和数组指针、数组作为函数参数的传递方式和二维数组。 一、数组定义和基本要素1.1 数组的定义数组是一系列已编号、长度固定的同一类...原创 2018-08-16 15:37:20 · 269 阅读 · 0 评论 -
【链块技术25期】区块链基础语言(十七)——Go语言切片(上)
原文链接:区块链基础语言(十七)——Go语言切片(上) 上一章节我们已经了解了数组的特点:数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。数组的这种特点无法满足特定场景的开发需求,Go语言提供了更为灵活、功能强悍的内置类型——切片(slice)来弥补数组的不足。 切片分为上、下两节。本节介绍切片的基础知识:切片的声明、空切片、切片和数组...原创 2018-08-20 15:24:16 · 426 阅读 · 0 评论 -
【链块技术26期】区块链基础语言(十八)——Go语言切片(下)
原文链接:区块链基础语言(十八)——Go语言切片(下) 上一节介绍了切片的基础知识:切片的声明、空切片、切片和数组的区别、切片和底层数组的关联、切片的创建。这一节主要介绍切片的几个操作(遍历、追加、拷贝、插入、删除),最后介绍切片作为函数参数的传递方式。一、切片的几个操作1.1 对切片的遍历类似于对数组的遍历,range结合for循环可以对切片进行遍历,格式为...原创 2018-08-21 18:46:44 · 435 阅读 · 0 评论 -
【链块技术27期】区块链基础语言(十九)——Go语言字典
原文链接:区块链基础语言(十九)——Go语言字典 在C++、Java、C#语言里,使用map,需要先引用相应的库。在Go语言里,使用map不需要引入任何库,并且使用更加方便。一、概述Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的键值对(key:value)集合,key类似于索引,可以通过key快速检索value。如图1所示,字典变量i...原创 2018-08-23 14:16:33 · 370 阅读 · 0 评论 -
【链块技术28期】区块链基础语言(二十)——Go语言结构体
原文链接:区块链基础语言(二十)——Go语言结构体 一、结构体概述 Go语言结构体是一种聚合的数据类型,由一系列具有相同类型或不同类型的数据构成的数据集合。结构体的声明格式如图1所示,内部没有关键词var,每个数据称为结构体成员。例如,图1所示,利用结构体表示法,以一个班级为单位,记录这个班的班级名称,统计班级的总人数、男女生人数。定义一个结构体需要用到两个关键词:type...原创 2018-08-27 19:16:17 · 366 阅读 · 0 评论 -
【链块技术29期】区块链基础语言(二十一)——Go语言包
原文链接:区块链基础语言(二十一)——Go语言包 在实际开发工作中,工程不会简单到只有一个源代码文件,且源文件之间有相互依赖的关系。Go语言利用命令行工具,消除了工程文件的概念,完全用目录结构和包名来推导工程结构和构建顺序。 一、包的由来为了代码更好地维护和复用,Go语言程序按程序的功能性将源代码分割成一个个逻辑单元,组织成若干组文件,每组文件被称为一个包。这样开发人员可以以包...原创 2018-08-28 17:41:04 · 351 阅读 · 0 评论 -
【链块技术30期】区块链基础语言(二十二)——Go语言面向对象
原文链接:区块链基础语言(二十二)——Go语言面向对象 一、面向过程和面向对象的区别 面向对象(Object Oriented,简称OO)和面向过程(Procedure Oriented,简称PO)是两种不同的编程思想。1.1 面向过程的编程面向过程编程(Process Oriented Programming,简称POP),以事物的发展过程为中心的编程思想,它根据流程一步...原创 2018-08-29 19:28:35 · 312 阅读 · 0 评论 -
【链块技术31期】区块链基础语言(二十三)——Go语言面向对象:方法
原文链接:区块链基础语言(二十三)——Go语言面向对象:方法 封装是面向对象三大特性之一。封装的好处,一个是增加代码内聚性,就是将数据和对数据的操作封装在一起,提高可复用性和可维护性;还有就是信息隐藏,就是把不该暴露的信息藏起来,通过访问控制来隐藏数据,不被外界干扰。也就是说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。 Go语言没有封装这个名词,但它通过方法实现了封...原创 2018-08-31 19:25:27 · 359 阅读 · 1 评论 -
【链块技术32期】区块链基础语言(二十四)——Go语言面向对象:匿名组合
原文链接:区块链基础语言(二十四)——Go语言面向对象:匿名组合 继承也是面向对象的三大基本特性之一。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。通过继承,不仅可以让某个类型的对象拥有属于自己的数据结构和操作,还会自动拥有父类的数据结构和操作。这使得现有的类在无需重新编写原来类的情况下对这些功能进行了扩展,很好地解决了代码的重用问题。...原创 2018-09-03 19:40:43 · 258 阅读 · 0 评论 -
【链块技术20期】区块链基础语言(十二)——Go语言跳转语句
原文链接:区块链基础语言(十二)——Go语言跳转语句 Go语言跳转语句对应的关键字是goto。在具体应用场景中,为满足更丰富的控制需求,Go语言提供了关键字break和continue。根据具体的逻辑目标、程序执行时间和空间限制、代码的可读性、编译器的代码优化设定等因素,开发者可以结合具体情况对这些关键字进行灵活组合。一、gotogoto语句,就是无条...原创 2018-08-10 17:46:58 · 498 阅读 · 0 评论 -
【链块技术19期】区块链基础语言(十一)——Go语言循环语句
原文链接:区块链基础语言(十一)——Go语言循环语句 与多数语言不同的是,Go语言中的循环语句只支持for关键字,不支持while和do-while。Go语言循环处理语句主要包含:for循环语句、for循环嵌套语句。 一、for循环语句1.1 形式一1.1.1 语法格式注:a. init:一般赋值表达式,给控制变量赋初值; b. conditi...原创 2018-08-09 14:16:38 · 553 阅读 · 0 评论 -
【链块技术37期】区块链技术语言(二十八)——Go语言并发编程(下)
原文链接:区块链技术语言(二十八):Go语言并发编程(下) 本节紧接上一节的内容,主要介绍channel中的有缓冲channel、单方向的channel、定时器,以及select语句在channel中的应用。3.4 有缓冲的channel3.4.1 概述有缓冲的通道(buffered channel)是一种在被接收前能存储一个或者多个值的通道。这种类型的通道并不强制要求goro...原创 2018-09-17 18:45:24 · 421 阅读 · 0 评论 -
【链块技术34期】区块链技术语言(二十六)——Go语言异常处理
原文链接 :区块链技术语言(二十六):Go语言异常处理 任何编程语言的学习都要考虑错误处理。早期的语言,比如C语言中的errno,不是语言规范的一部分,通常只作为一种编程范式存在。但C++语言从语言层面上增加错误处理的支持,比如异常的概念和try-catch关键字的引入。而Go语言最大的亮点之一就是拥有漂亮的错误处理规范。一、error error是Go语言内建的接口类型,它是...原创 2018-09-07 17:24:13 · 435 阅读 · 0 评论 -
【链块技术12期】区块链基础语言(四)——Go语言工程管理
原文链接:区块链基础语言(四)——Go语言工程管理 一、工作区在《Go语言开发环境搭建》中已经讲述了GOPATH的设置。GOPATH就是自定义的工作区目录,该目录包含3个子目录:src目录存放源代码(比如以.go、.c、.h、.s结尾的源代码文件)pkg目录存放编译后生成的文件,即由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档...原创 2018-07-24 19:25:09 · 442 阅读 · 0 评论 -
【链块技术11期】区块链基础语言(三)——Go语言开发工具
原文链接:区块链基础语言(三)——Go语言开发工具 一、在Windows系统安装Goland1.1 下载官网地址:https://www.jetbrains.com/go/download/#section=windows1.2 安装a. 双击“goland-2018.1.5.exe”,单击“运行”,如图1所示;<图1>b. 如图2所示,单击...原创 2018-07-12 19:29:03 · 1051 阅读 · 0 评论 -
【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
原文链接:区块链基础语言(二)——Go语言开发环境搭建 一、操作系统位数的查询方法在安装前首先要了解个人的电脑系统位数是32位还是64位。1.1Windows系统查询方法右击“计算机”------>单击“属性”------>进入“系统”。在“系统类型”,会看到个人电脑的操作系统位数,如图1。图11.2 Mac系统查询方法打开终端--...原创 2018-07-11 19:30:58 · 705 阅读 · 0 评论 -
【链块学院09期】区块链基础语言(一)——Go语言简介
原文链接:区块链基础语言(一)——Go语言简介 一、什么是Go语言Go语言,也叫作Golang,它是21世纪的C语言。Go语言让程序员在写代码过程中更加高效,而且它优化了多处理器系统的应用程序,使其可以媲美C或C++代码程序的速度。另外,它更加安全地支持并行进程。项目选择语言时,开发人员只能在程序地快速开发和程序的性能之间二选一。例如:C和C++这类语言性能好,而Rub...原创 2018-07-04 19:17:36 · 713 阅读 · 0 评论 -
【链块技术13期】区块链基础语言(五)——Go语言结构
原文链接:区块链基础语言(五)——Go语言结构 一、第一个Go程序我们第一个Go程序以最简单的Hello world作为开始。所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go。二、程序结构分析Go语言程序一般由关键字、包、常量、变量、运算符、符号、类型和函数组成。在这个程序仅涉及到关键字、包、符号和函数,以下对这些内容做...原创 2018-08-02 09:42:36 · 360 阅读 · 0 评论 -
【链块技术14期】区块链基础语言(六)——Go语言数据类型
原文链接:区块链基础语言(六)——Go语言数据类型 一、类型分类数据类型分为基本类型和复合类型。基本类型包含:布尔型、数值型(整数型、浮点型、复数型)、字符串型、函数型。函数型在函数章节再介绍。复合类型包含:指针、数组、切片、字典、结构体、通道、接口。复合类型在后面章节再逐一介绍。二、基本类型在计算机信息技术中,字节是计量存储容量的一种计量单位,通常情况一字...原创 2018-08-02 09:57:50 · 421 阅读 · 0 评论 -
【链块技术15期】区块链基础语言(七)——Go语言变量
原文链接:区块链基础语言(七)——Go语言变量 一、变量名1.1 命名规则为提升代码可读性和可维护性,多采用统一的、可读性高的命名方式。Go语言变量名由一个或多个字母、数字、下划线组成的序列,但第一个字符必须是字母或下划线,不能是数字,且区分大小写。例如:1a不能作为变量名,myname和myName是不同的变量名。1.2 命名风格命名风格有多种,常见的有驼峰式命...原创 2018-08-02 19:05:02 · 356 阅读 · 0 评论 -
【链块技术16期】区块链基础语言(八)——Go语言常量
原文链接:区块链基础语言(八)——Go语言常量 一、常量名常量的命名规则与命名风格和变量的相同,具体参见变量的命名规则。二、常量的特点常量在编译时就已经确定为已知且不可改变的值。三、字面常量字面常量就是一个确定值的本身,如表1所示。 四、单个常量的声明且赋值常量是在编译期就要确定的值,不能对常量先声明再赋值,因为赋值语句是在程序运行时才执行。...原创 2018-08-03 16:04:50 · 346 阅读 · 0 评论 -
【链块技术17期】区块链基础语言(九)——Go语言运算符
原文链接:区块链基础语言(九)——Go语言运算符 Go语言运算符主要包括:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。一、算数运算符算数运算符和数学中的运算符基本类似,但是需要注意的是:a. 参加算数运算的是两个相同类型的算数,不同类型的算数不能参加运算,且运算后的结果也是同一类型;b. 在Go语言里自增(自减)表达式只能是后自增(自减)...原创 2018-08-08 09:54:35 · 425 阅读 · 0 评论 -
【链块技术18期】区块链基础语言(十)——Go语言选择语句
原文链接:区块链基础语言(十)——Go语言选择语句 Go语言程序流程结构有三种:顺序结构,选择结构和循环结构。顺序结构的程序设计最简单,按照解决问题的顺序写出相应的语句,自上而下依次执行。选择结构用于判断给定的条件,根据判断的结果来控制程序的流程。循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。 在Go语言中,构成选择结构的语句包括:条件语句if、switch语句...原创 2018-08-09 14:08:10 · 588 阅读 · 0 评论 -
【链块技术50期】区块链技术基础语言(三十二):Go语言网络编程(下)
原文链接:区块链技术基础语言(三十二):Go语言网络编程(下) 本文紧接上文所述,讲解socket编程和HTTP编程。一、socket编程在上一节我们介绍了网络体系的五层模型,介绍了每层模型所遵守的协议。TCP/IP是一个协议族,它由网络层的IP协议和传输层的TCP协议组成,其中网络层建立了主机到主机的通信,传输层建立了端口到端口的通信。只要确定主机和端口,就能实现程序之间的交流。...原创 2018-11-29 10:51:54 · 385 阅读 · 0 评论