![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
冰河世纪20
喜爱运动,更喜欢技术!
展开
-
Go 语言 Slice
介绍Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。Slice 是 Go 中一个关键的数据类型,是一个比数组更加强大的序列接口。定义切片可以声明一个未指定大小的数组来定义切片:var identifier ...原创 2019-03-22 17:50:27 · 190 阅读 · 0 评论 -
Go 语言并发模型 Context
引言在之前的博客中,讲到过 Go 语言的优势之一是支持并发,而且也谈到过,使用 WaitGroup 控制多个 goroutine 实现并发。本篇博客将谈一下 Go 语言的另一种并发模型—— Context。介绍对于 Go 语言开发者来说 context(上下文)包一定不会陌生。应用场景:有一个网络请求Request,每个Request都需要开启一个goroutine做一些事情,这些 ...原创 2019-03-19 09:24:42 · 198 阅读 · 0 评论 -
Go 语言 XML处理
介绍XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。什么是 XML?XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准看如下的 XML 示例...原创 2019-03-18 17:39:03 · 1330 阅读 · 0 评论 -
Go 国密 sm2 sm3 sm4
本文仅供个人学习研究,如果涉及侵权,敬请告知!国密SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM2 为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。SM3 消息摘要...原创 2019-03-13 10:33:03 · 10505 阅读 · 11 评论 -
Go 语言 Excel
介绍xls xlsx区别xls 是 03 版 Office Microsoft Office Excel 工作表的格式,用 03 版 Office,新建 Excel 默认保存的 Excel 文件格式的后缀是 .xls;xlsx 是 07 版 Office Microsoft Office Excel 工作表的格式,用 07 版 Office,新建 Excel 默认保存的的 Excel 文件格...原创 2019-03-13 09:38:18 · 585 阅读 · 0 评论 -
Go 结构体和指针
上一篇博客介绍了 Go 指针的相关内容,本篇博客主要分享 Go 结构体和指针。结构体定义Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。实例:type Rect struct { width float64 length float64}上述代码定义了一个矩形结构体,首先是关键是...原创 2019-03-17 19:48:08 · 2694 阅读 · 0 评论 -
Go 语言调用 python2
介绍Go 是静态语言,性能很好,但是不那么灵活,不好在运行时动态运行代码。Python是动态语言,非常灵活,但是性能很差。古人云:“鱼和熊掌不能兼得”。但是如今有了Go-Python,鱼和熊掌也可以兼得。注意:Go-Python 只支持 python2,暂不支持 python3。安装需要安装第三方包 go-python,GitHub 地址如下:https://github.com/s...原创 2019-03-21 10:59:25 · 1385 阅读 · 0 评论 -
Go 语言指针
介绍我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。所谓指针其实可以把它想像成一个箭头,这个箭头指向(存储)一个变量的地址。因为这个箭头本身也需要变量来存储,所以也叫做指针变量。Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。下面的例子演示了变量在内存中地址:func main() { var a int = 10 ...原创 2019-03-17 18:40:33 · 123 阅读 · 0 评论 -
Go语言连接 zookeeper
介绍Apache ZooKeeper 是 Apache 软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper 曾经是 Hadoop 的一个子项目,但现在是一个独立的顶级项目。ZooKeeper 的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台 ZooKeeper 主机。ZooKeeper 节点将它们的数据存储...原创 2019-03-15 17:11:25 · 5485 阅读 · 1 评论 -
go 实现 kafka 消息发送、接收
引言网络上关于 go 实现 kafka 消息发送和接收的文章很多,但是实际操作起来又不是很清楚,本文在网络资源的基础上,结合自己搭建过程中遇到的问题进行了总结。本文的实验主机:Mac笔记本。一、核心概念kafka是消息中间件的一种,是一种分布式流平台,是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点。kafka中涉及的名词:消息记录(re...原创 2019-02-16 15:55:58 · 5046 阅读 · 0 评论 -
go 连接 kafka 写 mysql
引言上一篇中提到了,go 连接 kafka 进行消息的生产和消费过程。在这一篇中,将对 go 连接 kafka 写 mysql 进行简单的设计和实现。本文主要针对的是 Mac 系统,如果使用其它操作系统,操作过程可能有所差异,请注意区别。一、环境安装可以根据上一篇的介绍搭建好 kafka,在这里不做赘述。安装 mysql我安装的是 mysql 的5.8版本,在 mysql 官网下载安装...原创 2019-02-18 12:39:14 · 1248 阅读 · 1 评论 -
Go语言 goroutine
一、概念介绍Go 语言是原生支持语言级并发的,这个并发的最小逻辑单元就是 goroutine。goroutine 就是 Go 语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的 goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一个调度器来维护这些 goroutine,确保所有的 goroutine 都使用 cpu,并且是尽可能公平的使用 c...转载 2019-02-19 10:46:40 · 343 阅读 · 0 评论 -
Go语言 channel
介绍Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。要想理解 channel 要先知道 CSP 模型。CSP 是 Communicating Sequential Process 的简称,中文可以叫做通信顺序进程,是一种并发编程模型,由 Tony Hoare 于 1977 年提出。简单来说,CSP 模...转载 2019-02-19 11:21:44 · 143 阅读 · 0 评论 -
go 读取 json 配置文件
引言go 读取 json 配置文件,主要有两个知识点:一是文件的读取,二是 json 数据的处理。序列化与反序列化对 json 数据的处理往往指的是数据的序列化和反序列化。把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入到磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化。go 有内置对 json 数据...原创 2019-02-21 11:00:43 · 5156 阅读 · 0 评论 -
Go语言 defer
引言Go 语言中的 defer 语句是 UNIX 之父 Ken Thompson 大神发明的,是完全正交的设计。也正因为 Go 语言遵循的是正交的设计, 所以才有了: “少是指数级的多/Less is exponentially more” 的说法。因为是正交的设计,最终得到的组合形式是指数级的组合形式。作用在 go 语言中,defer 代码块会在函数调用链表中增加一个函数调用。这个函数调...原创 2019-03-04 14:22:06 · 383 阅读 · 0 评论 -
Go 语言 map
引言Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。Map定义可以使用内建函数 make 也可以使用 map 关键字来定义 Map:/* 声明变量,默认 ma...原创 2019-03-05 18:22:13 · 151 阅读 · 0 评论 -
Go语言 Redis的使用
介绍REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。它通常被称为数据结构服务器,因为值(value)可以是 字符串 (St...原创 2019-03-06 15:56:57 · 250 阅读 · 0 评论 -
Go 语言 Session机制和 Cookie机制
一、会话机制会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie 通过在客户端记录信息确定用户身份,Session 通过在服务器端记录信息确定用户身份。因为 HTTP 协议是无状态的,所以用户的每一次请求都是无状态的。为了解决获知在整个 Web 操作过程中哪些连接与该用户有关,Web 里面经典的解决方案是 c...转载 2019-03-07 10:28:58 · 5315 阅读 · 4 评论