go语言
雪域迷影
专业:计算机
爱好:服务端和客户端开发,桌面开发,全栈开发
兴趣:象棋、乒乓球、游泳、听音乐。
展开
-
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
如何读取yaml,json,ini等配置文件【Golang 入门系列九】一. go读取json配置文件二、 go读取.ini配置文件三、go读取yaml配置文件本文转载自如何读取yaml,json,ini等配置文件【Golang 入门系列九】前面已经讲过一些Go语言的基础知识,感兴趣的朋友可以先看看之前的文章。https://www.cnblogs.com/zhangweizhong/category/1275863.html。实际项目中,还有一个比较重要的基础功能,就是读取相关的配置文件。今天就来说转载 2020-12-30 22:02:25 · 518 阅读 · 0 评论 -
基于redisgo的redis客户端的封装示例
redisgo是一款go语言的redis客户端库。为了简化对redis的操作,可以使用redisgo对redis常用命令进行封装。首先在Github上面创建一个仓库redisgoExample然后git clone将项目克隆到本地,比如说我的阿里云CentOS8服务器下,git clone https://github.com/ccf19881030/redisgoExample.git如下图所示:当然运行go项目的前提是需要安装golang开发环境进入到redisgoExample目录,原创 2020-12-30 14:52:59 · 679 阅读 · 1 评论 -
golang中的反射
本文转载自https://github.com/KeKe-Li/For-learning-Go-Tutorial/edit/master/src/chapter07/01.0.mdFor-learning-Go-TutorialGo语言是谷歌2009发布的第二款开源编程语言Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。因而一直想的是自己可以根据自己学习和使用Go语言编程的心得,写一本Go的书可以帮助想要学习Go语言的转载 2020-12-13 21:09:08 · 370 阅读 · 0 评论 -
golang中的接口、函数、方法
For-learning-Go-TutorialGo语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。因而一直想的是自己可以根据自己学习和使用Go语言编程的心得,写一本Go的书可以帮助想要学习Go语言的初学者快速入门开发和使用!在 Golang 中,interface 是一个非常重要的概念和特性。接口(Interface)在Go语言中,函数和方法不太一样,有明确的概念区分。转载 2020-12-12 00:59:07 · 658 阅读 · 0 评论 -
For-learning-Go-Tutorial
For-learning-Go-Tutorial准备写一本Go的书针对初学者快速入门开发和使用go!学习Go语言需要去了解Go的特性,然后在深入的去实践,如果你想使用Go语言写出Go味道的程序,那么你就需要付出努力去实践了!先来了解下Go语言为何创造出来的历史吧,Go 语言是由谷歌公司在 2007 年开始开发的一门语言,目的是能在多核心时代高效编写网络应用程序。Go 语言的创始人 Robert Griesemer、Rob Pike 和 Ken Thompson 都是在计算机发展过程中作转载 2020-12-11 22:54:50 · 250 阅读 · 0 评论 -
关于go modules的一些资料
关于go modules的一些资料关于go modules的一些资料关于go modules的一些资料关于go modules的使用,可以参考官网:Go Modules Using Go Modules Go Modules Reference还有一些博客:跳出Go module的泥潭Introduction to Go Modulesgo依赖包管理工具对比...原创 2020-11-26 17:58:46 · 255 阅读 · 0 评论 -
go rpc示例
go rpc示例golang rpc包简单的示例(不使用rpc)go_basic_rpc示例(包括rpc服务端和rpc客户端)go rpc服务端`server.go`代码如下:运行rpc服务端和客户端参考资料最近在Youtube上面看到一个关于:golang rpc包的示例视频:youtube视频地址:Building a Basic RPC Server and Client with Go,其相应源代码的Github仓库地址为:https://github.com/tensor-programming转载 2020-11-24 10:22:11 · 357 阅读 · 0 评论 -
用Golang构建gRPC服务
本文转载自用Golang构建gRPC服务转载 2020-11-23 22:28:37 · 422 阅读 · 1 评论 -
golang中的rpc包用法
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。我所在公司的项目是采用基于Restful的微服务架构,随着微服务之间的沟通越来越频繁,就希望可以做成用rpc来做内部的通讯,对外依然用Restful。于是就想到了golang标准库的rpc包和google的grpc。这篇文章重点了解一下golang的rpc包。介绍golang的rpc支持三个级别的RPC:TCP、HTTP、JSONRPC。但Go的RPC包是独一无二的转载 2020-11-23 15:48:02 · 406 阅读 · 0 评论 -
gRPC
gRPC本文转载自http://www.topgoer.com/ - gRPC安装gRPC简介Protobuf⇢Go转换Protobuf语法小案例OpenSSL安装认证拦截器内置TraceHTTP网关转载 2020-11-21 21:43:38 · 117 阅读 · 0 评论 -
Go语言-爬虫小案例
Go语言-爬虫小案例1.1.1. 爬虫步骤1.1.2. 正则表达式1.1.3. 并发爬取美图本文转载自爬虫小案例-Go语言中文文档1.1.1. 爬虫步骤1.明确目标(确定在哪个网站搜索)2.爬(爬下内容)3.取(筛选想要的)4.处理数据(按照你的想法去处理)爬取QQ邮箱的Go语言示例代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")//这个只是一个简单的版本只是获取QQ转载 2020-10-28 00:34:50 · 270 阅读 · 0 评论 -
Go-http编程
Go-http编程web工作流程HTTP协议HTTP服务端HTTP客户端运行HTTP服务端和客户端进行测试本文转载自http编程web工作流程Web服务器的工作原理可以简单地归纳为1.客户机通过TCP/IP协议建立到服务器的TCP连接2.客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档3.服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端4.客户机与服务器断开。由客户端解转载 2020-10-26 22:31:19 · 179 阅读 · 0 评论 -
[Go] 轻量服务器框架基础TCP连接的抽象和封装
[Go] 轻量服务器框架基础TCP连接的抽象和封装zinterface/iconnection.goznet/connection.goznet/server.go开源作品对tcp连接部分以及与连接绑定的业务部分进行抽象和封装主要是对连接的开启关闭和读写进行封装,抽象出接口,使用回调进行具体业务的绑定zinterface/iconnection.gopackage zinterfaceimport "net"type IConnection interface{ Start()转载 2020-10-21 14:41:32 · 287 阅读 · 0 评论 -
KMP(Knuth Morris Pratt)算法的Go语言实现
字符串匹配字符串匹配BF(Brute force)算法RK(Rabin-Karp)算法BM(Boyer-Moore)算法KMP(Knuth Morris Pratt)算法字符串匹配BF(Brute force)算法实现:每次向后移动一位进行匹配RK(Rabin-Karp)算法实现:将每组要匹配长度的字符串进行hash,再hash后的元素里找BM(Boyer-Moore)算法有两部分组成:并且是由大到小,倒着匹配坏前缀:普通匹配只一位一位移动,移动规则为 si(坏字符的位置) xi(坏字符在匹转载 2020-10-21 14:30:03 · 349 阅读 · 0 评论 -
Go 开发者路线图
Go 开发者路线图在 2020年 成为一名 Go 开发者的路线图:在下边有一个路线图,如果你想要成为一名Go语言的开发者的话,你可以沿着这张图里面的路径去学习,里面记录了一些你可能也想学习的库。当你问到:”我想成为一名Go语言开发者,接下来我要学些什么?“,我做的这个路线图就是一个很好的建议。English日本語版免责声明本路线图的目的是让你看到学习Go语言的一个全景图。在你对接下来要学习什么感到困惑的时候,这个路线图会给你一些指导,而不是鼓励你去选择当下流行的东西。你需要逐渐了解为什么转载 2020-10-21 14:01:52 · 461 阅读 · 2 评论 -
go-admin-基于Gin + Vue + Element UI的前后端分离权限管理系统
English | 简体中文基于Gin + Vue + Element UI的前后端分离权限管理系统系统初始化极度简单,只需要配置文件中,修改数据库连接,系统启动后会自动初始化数据库信息以及必须的基础数据在线文档国际在线文档国内前端项目视频教程✨ 特性遵循 RESTful API 设计规范基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)基于Ca...转载 2020-10-21 13:07:33 · 2666 阅读 · 0 评论 -
Go语言实现UDP服务端和客户端
Go语言实现UDP通信UDP协议UDP服务端UDP客户端测试UDP服务端和客户端本文转载自Go语言实现UDP通信UDP协议UDP协议(User Datagram Protocol)中文名称是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,不需要建立连接就能直接进行数据发送和接收,属于不可靠的、没有时序的通信,但是UDP协议的实时性比较好,通常用于视频直播相关领域。UDP服务端使用Go语言的net包实现的UDP服务端转载 2020-10-21 13:02:56 · 710 阅读 · 0 评论 -
Go语言实现TCP服务端和客户端
Go语言实现TCP服务端和客户端Go语言实现TCP通信TCP协议TCP服务端TCP客户端本文转载自Go语言实现TCP通信Go语言实现TCP通信TCP协议TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。TCP服务端一个TCP服务端可以同时连接很多个客户端转载 2020-10-21 12:54:12 · 818 阅读 · 0 评论 -
Go by Example 中文版: 目录
Go by Example 中文版: 目录对于操作文件系统中的 目录 ,Go 提供了几个非常有用的函数。下面是Go语言的示例代码://Go by Example 中文版: 目录//https://gobyexample-cn.github.io/directories//对于操作文件系统中的 目录 ,Go 提供了几个非常有用的函数。package mainimport ( "fmt" "io/ioutil" "os" "path/filepath")func check(e转载 2020-09-29 14:37:37 · 238 阅读 · 0 评论 -
Go by Example 中文:闭包
Go by Example 中文:闭包Go 支持通过 闭包来使用 匿名函数。匿名函数在你想定义一个不需要命名的内联函数时是很实用的。相关的Go语言示例代码如下:'// Go by Example 中文:闭包// https://books.studygolang.com/gobyexample/closures/// Go 支持通过 闭包来使用 匿名函数。匿名函数在你想定义一个不需要命名的内联函数时是很实用的。package mainimport "fmt"// 这个 intSeq 函数转载 2020-09-29 14:10:20 · 162 阅读 · 0 评论 -
Go by Example 中文版: 文件路径
Go by Example 中文版:文件路径filepath 包为 文件路径 ,提供了方便的跨操作系统的解析和构建函数; 比如:Linux 下的 dir/file 和 Windows 下的 dir\file 。相关的GO语言代码如下:// Go by Example 中文版: 文件路径// https://gobyexample-cn.github.io/file-paths// filepath 包为 文件路径 ,提供了方便的跨操作系统的解析和构建函数; 比如:Linux 下的 dir/file转载 2020-09-27 18:10:06 · 218 阅读 · 0 评论 -
Go by Example 中文版: 行过滤器
Go by Example 中文版:行过滤器行过滤器(line filter) 是一种常见的程序类型, 它读取 stdin 上的输入,对其进行处理,然后将处理结果打印到 stdout。 grep 和 sed 就是常见的行过滤器。这里是一个使用 Go 编写的行过滤器示例,它将所有的输入文字转化为大写的版本。 你可以使用这个模式来写一个你自己的 Go 行过滤器。下面是相关的Go示例代码:// Go by Example 中文版: 行过滤器// https://gobyexample-cn.github转载 2020-09-23 14:13:44 · 309 阅读 · 0 评论 -
Go by Example 中文版: 写文件
Go by Example 中文版:写文件在 Go 中,写文件与我们前面看过的读文件方法类似。对应的Go语言代码示例如下://Go by Example 中文版: 写文件//https://gobyexample-cn.github.io/writing-files//在 Go 中,写文件与我们前面看过的读文件方法类似。package mainimport ( "bufio" "fmt" "io/ioutil" "os")func check(e error) { if e转载 2020-09-23 12:57:05 · 220 阅读 · 0 评论 -
Go by Example 中文版: 读文件
Go by Example 中文版: 读文件:读文件读写文件在很多程序中都是必须的基本任务。 首先我们来看一些读文件的例子。相关的Go语言示例程序代码如下:// Go by Example 中文版: 读文件// https://gobyexample-cn.github.io/reading-files// 读写文件在很多程序中都是必须的基本任务。 首先我们来看一些读文件的例子。package mainimport ( "bufio" "fmt" "io" "io/ioutil"转载 2020-09-23 10:08:00 · 230 阅读 · 0 评论 -
Go by Example 中文版: Base64 编码
Go by Example 中文版:Base64 编码Go 提供了对 base64 编解码的内建支持。下面是使用encoding/base64包进行编解码的Go示例代码:package main// Go by Example 中文版: Base64 编码// https://gobyexample-cn.github.io/base64-encoding// Go提供了对base64编解码的内建支持。// 这个语法引入了 encoding/base64包,并使用别名b64代替默认的bas转载 2020-09-23 09:18:05 · 635 阅读 · 0 评论 -
Go by Example 中文版: SHA1 哈希
Go by Example 中文版: SHA1 哈希:SHA1 哈希SHA1 散列(hash)经常用于生成二进制文件或者文本块的短标识。 例如,git 版本控制系统 大量的使用了 SHA1 来标识受版本控制的文件和目录。 这是 Go 中如何进行 SHA1 散列计算的例子。package main// Go by Example 中文版: SHA1 哈希// https://gobyexample-cn.github.io/sha1-hashes//SHA1 散列(hash) 经常用于生成二进制转载 2020-09-23 09:03:53 · 186 阅读 · 0 评论 -
Go by Example 中文版: URL 解析
Go by Example 中文版: URL 解析URL 提供了统一资源定位方式。 这里展示了在 Go 中是如何解析 URL 的。相关的Go示例代码如下:package main// Go by Example 中文版: URL 解析// https://gobyexample-cn.github.io/url-parsing// URL 提供了统一资源定位方式。// 这里展示了在 Go 中是如何解析 URL 的。import ( "fmt" "net" "net/url")f转载 2020-09-18 16:39:08 · 206 阅读 · 0 评论 -
Go by Example 中文版: 数字解析
Go by Example 中文版: 数字解析从字符串中解析数字在很多程序中是一个基础常见的任务, 而在 Go 中,是这样处理的。内建的 strconv 包提供了数字解析能力。相关的Go示例代码如下:package main// Go by Example 中文版: 数字解析// https://gobyexample-cn.github.io/number-parsing// 从字符串中解析数字在很多程序中是一个基础常见的任务, 而在 Go 中,是这样处理的。// 内建的strconv包提转载 2020-09-18 16:16:15 · 292 阅读 · 0 评论 -
Go by Example 中文版: 随机数
Go by Example 中文版: 随机数Go 的 math/rand 包提供了伪随机数生成器。相关的Go示例代码如下:package main// Go by Example 中文版: 随机数// https://gobyexample-cn.github.io/random-numbers// Go 的 math/rand 包提供了伪随机数生成器。import ( "fmt" "math/rand" "time" )func main() { // 例如,rand.Int转载 2020-09-18 15:44:57 · 203 阅读 · 0 评论 -
Go by Example 中文版: 时间的格式化和解析
Go by Example 中文版: 时间的格式化和解析Go 支持通过基于描述模板的时间格式化与解析。相关Go的示例代码如下:package main// Go by Example 中文版: 时间的格式化和解析// https://gobyexample-cn.github.io/// https://gobyexample-cn.github.io/time-formatting-parsing// Go 支持通过基于描述模板的时间格式化与解析。import ( "fmt" "ti转载 2020-09-18 14:58:28 · 257 阅读 · 0 评论 -
Go by Example 中文版: 时间
Go by Example 中文版: 时间Go by Example 中文版: 时间Go 为时间(time)和时间段(duration)提供了大量的支持;这里有一些例子。Go示例代码如下:package main// Go by Example 中文版: 时间// Go 为时间(time)和时间段(duration)提供了大量的支持;这儿有是一些例子。// https://gobyexample-cn.github.io/timeimport ( "fmt" "time")fun转载 2020-09-16 13:14:57 · 185 阅读 · 0 评论 -
Go by Example 中文版: JSON
Go by Example 中文版: JSONGo 提供内建的 JSON 编码解码(序列化反序列化)支持, 包括内建及自定义类型与 JSON 数据之间的转化。示例代码如下:package mainimport ( "encoding/json" "fmt" "os")// 下面我们将使用这两个结构体来演示自定义类型的编码和解码。type response1 struct { Page int Fruits []string}// 只有 可导出 的字段才会被 JSON 编码/转载 2020-09-07 11:00:21 · 189 阅读 · 0 评论 -
Go by Example 中文版: 正则表达式
Go by Example 中文版: 正则表达式Go 提供了内建的正则表达式支持。 这儿有一些在 Go 中与 regexp 相关的常见用法示例。示例代码如下:package main// Go by Example 中文版: 正则表达式// Go 提供了内建的正则表达式支持。这儿有一些在Go中与regexp相关的常见用法示例。import ( "bytes" "fmt" "regexp")func main() { // 测试一个字符串是否符合一个表达式。 match, _ :转载 2020-09-07 10:14:38 · 201 阅读 · 0 评论 -
Go by Example 中文版: 字符串格式化
Go by Example 中文版: 字符串格式化Go 在传统的 printf 中对字符串格式化提供了优异的支持。 这儿有一些基本的字符串格式化的任务的例子。Go的示例代码如下:package mainimport ( "fmt" "os")type point struct { x, y int}func main() { p := point{1, 2} // Go 提供了一些用于格式化常规值的打印“动词”。 // 例如,这样打印 point 结构体的实例。 fmt.转载 2020-09-07 09:24:52 · 160 阅读 · 0 评论 -
Go by Example 中文版: 组合函数
Go by Example 中文版: 组合函数我们经常需要程序对数据集合执行操作, 例如选择满足给定条件的全部 item, 或通过自定义函数将全部 item 映射到一个新的集合。在其它语言中,通常会使用泛型数据结构和算法。 但 Go 不支持泛型,如果你的程序或者数据类型有需要,通常的做法是提供函数集。这是一些 strings 切片的组合函数示例。 你可以使用这些例子来构建自己的函数。 注意,在某些情况下,最简单明了的方法是: 直接内联操作方法集,而不是创建并调用帮助函数。Go的代码示例如下所示:/转载 2020-09-04 17:02:14 · 166 阅读 · 0 评论 -
go语言逐行读取和写入文件
前言前面一篇博客讲到nodejs使用readline逐行读取和写入文件今天使用go语言实现从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中。tb_param表的结构tb_param表的结构如下:创建表的SQL脚本如下,我使用的是Sqlite数据库 DROP TABLE IF EXISTS "main"."tb_param";CREATE TABLE tb_param(protocol INT NOT NULL,slave INT NOT NULL原创 2020-09-03 16:16:03 · 3057 阅读 · 0 评论 -
Go by Example 中文版: 状态协程
Go by Example 中文版:状态协程在前面的例子中,我们用 互斥锁 进行了明确的锁定, 来让共享的 state 跨多个 Go 协程同步访问。 另一个选择是,使用内建协程和通道的同步特性来达到同样的效果。 Go 共享内存的思想是,通过通信使每个数据仅被单个协程所拥有,即通过通信实现共享内存。 基于通道的方法与该思想完全一致!示例代码如下:// Go by Example 中文版: 状态协程// https://gobyexample-cn.github.io/stateful-goroutin转载 2020-09-01 00:08:09 · 252 阅读 · 0 评论 -
Go by Example 中文版: HTTP 客户端
[Go by Example 中文版](https://gobyexample-cn.github.io/):HTTP 客户端Go 标准库的 net/http 包为 HTTP 客户端和服务端提供了出色的支持。 在这个例子中,我们将使用它发送简单的 HTTP 请求。程序示例代码如下:// Go by Example中文版:HTTP客户端// Go 标准库的 net/http包为HTTP客户端和服务端提供了出色的支持。在这个例子中,我们将使用它发送简单的HTTP请求。package mainimp转载 2020-08-31 23:27:02 · 256 阅读 · 0 评论 -
Go by Example 中文版: HTTP 服务端
[Go by Example 中文版](https://gobyexample-cn.github.io/): HTTP 服务端使用 net/http 包,我们可以轻松实现一个简单的 HTTP 服务器。示例代码如下:// Go by Example 中文版:HTTP 服务端// https://gobyexample-cn.github.io/http-servers// 使用net/http包,我们可以轻松实现一个简单的HTTP服务器。package mainimport ( "fmt"转载 2020-08-31 00:25:15 · 412 阅读 · 0 评论 -
Go by Example 中文版: 互斥锁
Go by Example 中文版: 互斥锁在前面的例子中,我们看到了如何使用原子操作来管理简单的计数器。 对于更加复杂的情况,我们可以使用一个互斥锁 来在 Go 协程间安全的访问数据。示例代码如下:// Go by Example 中文:互斥锁// https://books.studygolang.com/gobyexample/mutexes/// 在前面的例子中,我们看到了如何使用原子操作来管理简单的计数器。// 对于更加复杂的情况,我们可以使用一个互斥锁来在 Go 协程间安全的访问数据转载 2020-08-30 23:53:49 · 202 阅读 · 0 评论