摘要: 笔者在《Golang : cobra 包简介》一文中简要的介绍了 cobra 包及其基本的用法,本文我们从代码的角度来了解下 cobra 的核心逻辑。 Command 结构体 Command 结构体是 cobra 抽象出来的核心概念,它的实例表示一个命令或者是一个命令的子命令。下面的代码仅展示 Co阅读全文
posted @ 2019-05-16 08:11 sparkdev 阅读(2261) 评论(0) 编辑
摘要: Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序。同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用。本文的演示环境为 ubuntu 18.04(下图来自互联网)。 主要功能 cobra 的主要功能如下,可以说每一项都很实用: 简易的子阅读全文
posted @ 2019-05-14 08:52 sparkdev 阅读(2058) 评论(1) 编辑
摘要: 笔者在前文中介绍了 Golang 标准库中 flag 包的用法,事实上有一个第三方的命令行参数解析包 pflag 比 flag 包使用的更为广泛。pflag 包的设计目的就是替代标准库中的 flag 包,因此它具有更强大的功能并且与标准的兼容性更好。本文将介绍 pflag 包与 flag 包相比的主阅读全文
posted @ 2019-05-09 08:47 sparkdev 阅读(3376) 评论(0) 编辑
摘要: 在 Golang 程序中有很多种方法来处理命令行参数。简单的情况下可以不使用任何库,直接处理 os.Args;其实 Golang 的标准库提供了 flag 包来处理命令行参数;还有第三方提供的处理命令行参数的库,比如 Pflag 等。本文将介绍 Golang 标准库中 flag 包的用法。本文的演示阅读全文
posted @ 2019-05-06 08:44 sparkdev 阅读(1325) 评论(0) 编辑
摘要: Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。试图表示一个现实世界中的实体。 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和一个类型。结构体的目的就是把数据聚集在一起,以便能够更加便捷地操作这些数据。结构体的概念在 C 语言阅读全文
posted @ 2019-04-25 08:47 sparkdev 阅读(3238) 评论(1) 编辑
摘要: 映射是一种数据结构,用于存储一系列无序的键值对,它基于键来存储值。映射的特点是能够基于键快速检索数据。键就像是数组的索引一样,指向与键关联的值。与 C++、Java 等编程语言不同,在 Golang 中使用映射不需要引入任何库。因此 Golang 的映射使用起来更加方便。我们可以通过下图简要的理解一阅读全文
posted @ 2019-04-23 08:41 sparkdev 阅读(3529) 评论(0) 编辑
摘要: 切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append() 来实现的,这个函数可以快速且高效地增长切片,也可以通过对切片再次切割,缩小一个切片的大小。因为切阅读全文
posted @ 2019-04-17 07:52 sparkdev 阅读(2917) 评论(1) 编辑
摘要: 数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等,也可以是用户自定义的类型。一个数组包含的元素个数被称为数组的长度。在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是说阅读全文
posted @ 2019-04-15 09:17 sparkdev 阅读(1223) 评论(1) 编辑
摘要: 在 Golang 中,字符串是一种基本类型,这一点和 C 语言不同。C 语言没有原生的字符串类型,而是使用字符数组来表示字符串,并以字符指针来传递字符串。Golang 中的字符串是一个不可改变的 UTF-8 字符序列,一个 ASCII 码占用 1个字节,其它字符根据需要占用 2-4 个字节,这一点与阅读全文
posted @ 2019-04-09 08:49 sparkdev 阅读(1389) 评论(0) 编辑
摘要: 由于一些客观原因的存在,我们开发 Golang 项目的过程总会碰到无法下载某些依赖包的问题。这不是一个小问题,因为你的工作会被打断,即便你使用各种神通解决了问题,很可能这时你的线程已经切换到其他的事情上了(痛恨思路被打断!)。所以最好是一开始我们就重视这个问题,并一劳永逸的解决它。 问题描述 当我们阅读全文
posted @ 2019-04-04 09:12 sparkdev 阅读(163) 评论(0) 编辑