Golang
文章平均质量分 72
GoRustNeverStop
这个作者很懒,什么都没留下…
展开
-
Go 编译时加入版本信息
-ldflags 参数Go 编译时可通过ldflags动态的为程序里某个变量赋值,我们可以利用这个特性来达到将 Go 的信息和 git 的 commit 信息编译到我们的二进制文件中。package mainimport ( "fmt" "os")var ( gitHash string buildTime string goVer...转载 2019-12-10 10:45:58 · 1978 阅读 · 0 评论 -
Golang json用法详解(一)
Golang json用法详解(一)简介json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。但是Go语言是个强类型语言,对格式要求极其严格而JSON格式虽然也有类型,但是并不稳定,Go语言在解析来源为非强类型语言时比如PHP等序列化的JSON时,经常遇到一些问题诸如字段类型变化导致无法正常解转载 2017-11-22 16:02:51 · 8383 阅读 · 1 评论 -
golang API json,struct结构中标签(Tag)的使用
在看别人的一些代码时,声明结构时有个json:name是做什么用的?想知道原因得了解下:在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到Redis等等。这个时候如果直接用属性名来作为键值会不符合项目要求。于是就有了tag,也就是有了json:name或者orm:"size(转载 2017-11-22 16:02:03 · 4145 阅读 · 0 评论 -
golang 中regexp包用法
本文转自Golove博客:http://www.cnblogs.com/golove/p/3270918.htmlregexp 包中的函数和方法// regexp.go------------------------------------------------------------// 判断在 b 中能否找到正则表达式 pattern 所匹配的子串转载 2017-11-21 10:29:28 · 1904 阅读 · 0 评论 -
golang使用yaml格式解析构建配置文件
golang使用yaml格式解析构建配置文件现在主流的配置文件格式有这么几种,xml、yaml、config… xml就算了,太挫了,太土, 太繁琐… config 就是mysql,apache my.cnf的那种格式,这个格式适合功能分层,不适合写同级的配置端.yaml是我最喜欢的配置格式,像ansible、saltstack、puppet都是使用yaml来做配转载 2017-11-21 09:00:17 · 2736 阅读 · 0 评论 -
golang中container/list包用法
这是一个创建于 2015-06-23 02:03:13 的文章,其中的信息可能已经有所发展或是发生改变。list是一个双向链表。该结构具有链表的所有功能。type Elementtype Element struct { Value interface{} //在元素中存储的值}func (e *Element) Next() *Elem转载 2017-11-15 10:59:37 · 1633 阅读 · 0 评论 -
golang中container/list包中的坑
这是一个创建于 2015-09-21 15:00:06 的文章,其中的信息可能已经有所发展或是发生改变。golang中list包用法可以参看http://blog.csdn.net/chenbaoke/article/details/42780895但是list包中大部分对于e *Element进行操作的元素都可能会导致程序崩溃,其根本原因是e是一个Element类型的指针,当然其转载 2017-11-15 10:58:40 · 1325 阅读 · 0 评论 -
【玩转Golang】slice切片的操作——切片的追加、删除、插入等
这是一个创建于 2015-01-22 13:00:01 的文章,其中的信息可能已经有所发展或是发生改变。一、一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nilfunc main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss转载 2017-11-15 10:06:27 · 8478 阅读 · 0 评论 -
go 切片:用法和本质
这是一个创建于 2016-01-31 05:00:00 的文章,其中的信息可能已经有所发展或是发生改变。原文: http://golang.org/doc/articles/slices_usage_and_internals.html中文: http://zh-golang.appsp0t.com/doc/articles/slices_usage_and_internals.h转载 2017-11-15 10:05:36 · 389 阅读 · 0 评论 -
Golang 实现简单的定时器
问题做项目的时候经常会有这样的需求,在某个时刻开始执行某个任务,然后每隔一段时间都会执行该任务。windows下有计划任务,linux下有cron。如果用python可以使用apscheduler库。那么在Go中应该怎么实现呢?间隔执行time包中有个Ticker可以用来实现简单的定时任务。ticker := time.NewTicker(5 * time.Second)for _ =转载 2017-11-15 10:04:31 · 2151 阅读 · 0 评论 -
Golang以OO的方式实现二叉查找树
二叉查找树是一种满足如下性质的二叉树:(1) 某个节点的左子树中的所有节点的值都比这个节点的值小(2) 某个节点的右子树中的所有节点的值都比这个节点的值大下面有Go实现的非常详尽的代码,采用了Go风格的OO进行了封装。代码中主函数的例子的参照图如下:这是我的二叉查找树的使用手册:[cpp] view转载 2017-11-20 10:41:19 · 345 阅读 · 0 评论 -
gozmq的安装与使用教程(zeromq分布式消息队列+golang)
实现功能:用go实现消息队列的写入与读取(打算用在发送邮件服务)环境工具:Centos 64X 6.4zeromq 3.2.4:zeromq.orggolang:http://golang.org/一.安装golang(http://golang.org/doc/install)这一步很简单,只需要从http://code.google.com/p/go/downl转载 2017-11-20 10:40:15 · 8426 阅读 · 0 评论 -
Go实战--golang中读写文件的几种方式
生命不止,继续 go go go !!!读写文件应该是在开发过程中经常遇到的,今天要跟大家一起分享的就是在golang的世界中,如何读写文件。使用io/ioutil进行读写文件先回忆下之前的ioutil包介绍: Go语言学习之ioutil包(The way to go)其中提到了两个方法: func ReadFilefunc ReadFile(filen转载 2017-09-19 11:31:36 · 2131 阅读 · 1 评论 -
在Go语言中使用JSON(去掉空字段)
Encode将一个对象编码成JSON数据,接受一个interface{}对象,返回[]byte和error:func Marshal(v interface{}) ([]byte, error)Marshal函数将会递归遍历整个对象,依次按成员类型对这个对象进行编码,类型转换规则如下:bool类型 转换为JSON的Boolean整数,浮点数等数值类型 转换为JS转载 2017-11-22 16:03:23 · 3898 阅读 · 0 评论 -
golang解析json格式
golang解析json格式项目中客户端和服务端的交互数据部分为json,因此在服务端就得解析,复杂的json解析起来其实还是挺费劲的。 交互的数据类似如下格式:{"sn":1,"ls":false,"bg":0,"ed":0,"ws":[{"bg":0,"cw":[{"sc":0,"w":"还"}]},{"bg":0,"cw":[{"sc":0,"w":"有点"}]},{"bg"转载 2017-11-22 16:03:58 · 1105 阅读 · 0 评论 -
golang使用sqlite
安装问题在import sqlite的时候,golang build 出现以下错误,exec: "gcc": executable file not found in %PATH%原因是sqlitle3是个cgo库,需要gcd编译c代码然后下载安装tdm-gcc即可(windosw版本)下载地址:http://tdm-gcc.tdragon.net/download转载 2017-11-22 16:04:26 · 1538 阅读 · 0 评论 -
golang笔记——数组与切片
一、切片的定义 我们可以从数组(go语言中很少直接使用数组)或者切片来初始化一个新的切片,也可以直接通过 make 来初始化一个所有元素为默认零值的切片。//1、通过数组来初始化切片 arr := [...]int{1, 2, 3, 4, 5} slice1 := arr[:] // [1,2,3,4,5] slice2 := arr[2:4] // [3,4] ...转载 2018-04-11 10:11:08 · 334 阅读 · 0 评论 -
golang中的RPC调用服务器方法
原文链接,参考Golang中文文档:http://docscn.studygolang.com/pkg/net/rpc/#NewServerrpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. 一个server注册一个对象, 标记它成为可见对象类型名字的服务。注册后,对象的外部方法就可以远程调用了。一个server可以注册多个 不同类型的对象,但是却不可以注册多个相同类型的对...转载 2018-04-11 10:08:20 · 1374 阅读 · 0 评论 -
Go语言使用PostgreSQL数据库
PostgreSQL和MySQL比较,它更加庞大一点,因为它是用来替代Oracle而设计的。所以在企业应用中采用PostgreSQL是一个明智的选择。现在MySQL被Oracle收购之后,有传闻Oracle正在逐步的封闭MySQL,,鉴于此,将来我们也许会选择PostgreSQL而不是MySQL作为项目的后端数据库。1、驱动Go实现的支持PostgreSQL的驱动也很多,因转载 2018-02-02 14:06:41 · 440 阅读 · 0 评论 -
基础知识 - Golang 中的正则表达式
基础知识 - Golang 中的正则表达式------------------------------------------------------------Golang中的正则表达式------------------------------------------------------------用法:-----------------------------转载 2017-12-19 12:03:11 · 1513 阅读 · 0 评论 -
Windows下安装LiteIDE
一、安装Go语言包 参考:《Windows下Go开发环境安装》二、安装LiteIDE(1)下载LiteIDE 下载地址:https://code.google.com/p/golangide/downloads/list(2)安装 解压缩即可。避免出现中文目录。三、配置LiteIDE(1)设置编译环境 【查看】-转载 2017-12-06 10:26:41 · 1334 阅读 · 0 评论 -
Go语言中使用MySql数据库
Go语言中使用MySql数据库1、MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:https://github.com/Go-SQL-Driver/MySQL 支持database/sql,全部采用go写。https://github.com/ziutek/mymysql 支持d转载 2017-12-22 17:13:54 · 622 阅读 · 0 评论 -
Go语言中使用SQLite数据库
Go语言中使用SQLite数据库 1、驱动Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的https://github.com/mattn/go-sqlite3 支持database/sql接口,基于cgo(关于cgo的知识请参看官方文档或者本书后面的章节)写的https://github.com/feyeleanor/gosqlite3 不转载 2017-12-22 17:13:19 · 2625 阅读 · 0 评论 -
Go语言使用PostgreSQL数据库
Go语言使用PostgreSQL数据库PostgreSQL和MySQL比较,它更加庞大一点,因为它是用来替代Oracle而设计的。所以在企业应用中采用PostgreSQL是一个明智的选择。现在MySQL被Oracle收购之后,有传闻Oracle正在逐步的封闭MySQL,,鉴于此,将来我们也许会选择PostgreSQL而不是MySQL作为项目的后端数据库。1、驱动Go实现转载 2017-12-22 17:12:10 · 1537 阅读 · 0 评论 -
LiteIDE 在 Windows 下为 Go 语言添加智能提示代码补全
LiteIDE 在 Windows 下为 Go 语言添加智能提示代码补全liuning8023 · 2015-05-19 03:00:11 · 5730 次点击 · 预计阅读时间 1 分钟 · 23分钟前 开始浏览 这是一个创建于 2015-05-19 03:00:11 的文章,其中的信息可能已经有所发展或是发生改变。本文以 Windows 7 64 位为环境,g转载 2017-12-04 10:47:47 · 1385 阅读 · 0 评论 -
golang expected declaration, found 'IDENT'
这个问题是因为:=只能在函数内部使用,如果声明全局变量需要使用var关键字 例如func foo() { id := 1}如果声明为全局变量则需要这样声明var id = 1PS:Go中引入:=是为了减少一些临时变量的定义,所以一个好的习惯是:=只用来声明临时变量,对于一个函数中常用的变量还是使用var进行声明。附: Short_variable转载 2017-11-23 15:48:30 · 7040 阅读 · 0 评论 -
Golang中的信号处理
信号类型个平台的信号定义或许有些不同。下面列出了POSIX中定义的信号。Linux 使用34-64信号用作实时系统中。命令 man 7 signal 提供了官方的信号介绍。在POSIX.1-1990标准中定义的信号列表信号值动作说明SIGHUP1Term终端控制进程结转载 2017-12-20 11:55:11 · 935 阅读 · 0 评论 -
golang 设置 http response 响应头的内容与坑
golang 设置 http response 响应头的内容与坑用 golang 写 http server 时,可以很方便可通过 w.Header.Set(k, v) 来设置 http response 中 header 的内容。例如:w.Header().Set("Access-Control-Allow-Origin", "*") 。但是需要特别注意的是某些时转载 2017-11-23 14:19:01 · 21331 阅读 · 0 评论 -
golang 中fmt用法
fmt包实现了格式化的I/O函数,这点类似C语言中的printf和scanf,但是更加简单.占位符:通用占位符:%v 值的默认格式。当打印结构体时,“加号”标记(%+v)会添加字段名%#v 相应值的Go语法表示%T 相应值的类型的Go语法表示%% 字面上的百分号,并非值的占位符 用法如下:[html] view plain copy转载 2017-09-19 09:15:16 · 3094 阅读 · 0 评论 -
golang 中bufio包的用法
本文转自GOlove博客:http://www.cnblogs.com/golove/p/3282667.html 并在此基础上进行了一些添加修改. bufio 包中的函数和方法// bufio 包实现了带缓存的 I/O 操作// 它封装一个 io.Reader 或 io.Writer 对象// 使其具有缓存和一些文本读写功能--------转载 2017-09-19 09:03:20 · 3732 阅读 · 1 评论 -
golang中os包用法
os包中实现了平台无关的接口,设计向Unix风格,但是错误处理是go风格,当os包使用时,如果失败之后返回错误类型而不是错误数量.os包中函数设计方式和Unix类似,下面来看一下.func Chdir(dir string) error //chdir将当前工作目录更改为dir目录.func Getwd() (dir string, err error) //获取转载 2017-09-08 11:35:54 · 9949 阅读 · 0 评论 -
使用 delve 调试 golang 程序
安装 delve官方的文档已经很全了,参考这里(github)安装。Mac OSX 比较麻烦,需要搞定证书。断点和变量打印delve 装好之后就可以直接在命令行使用 dlv 命令了。查看可用的命令dlv -h看帮助信息可知:支持用 dlv attach 的方式调试正在运行的进程,支持 dlv connect 链接到网络端口调试。这里先用最简单的 dlv转载 2017-08-25 16:26:26 · 2544 阅读 · 0 评论 -
golang使用sqlite
安装问题在import sqlite的时候,golang build 出现以下错误,exec: "gcc": executable file not found in %PATH%原因是sqlitle3是个cgo库,需要gcd编译c代码然后下载安装tdm-gcc即可(windosw版本)下载地址:http://tdm-gcc.tdragon.net/download转载 2017-08-15 17:22:41 · 3968 阅读 · 0 评论 -
linux环境下go1.8安装配置具体步骤(二进制部署和源码编译部署)
说明:之前学习过go语言(大概是0.9版本),后来更新太快,也没怎么使用,就荒废掉了,今年有项目需要用go开发,重新捡起。这是我在学习go语言过程中整理的内容,这里记录下,也方便我以后查阅。操作系统: CentOS 6.9_x64go语言版本: 1.8.3安装go这里直接安装二进制,其它方式请自行搜索。1、下载并安装go命令如下:转载 2017-08-10 10:26:27 · 4205 阅读 · 0 评论 -
golang中发送http请求的几种常见情况
整理一下golang中各种http的发送方式最初的一些项目中,很多的地方都使用到了golang发送http请求,之后再对请求收到的结果进行一些处理,所用到的模式也比较固定,这里整理一下集中http的发送方式,先记录这么多,再一点一点添加。最基本的场景方式一 使用http.Newrequest先生成http.client -> 再生成 http.request ->转载 2017-08-16 11:14:11 · 4180 阅读 · 0 评论 -
初探Docker
初探Dockerby lizhi on 2016-02-27本文旨在让大家了解什么是Docker,并带领大家体验Docker使用的整个流程。开启Docker学习之旅前,我们简单描述几个场景,应该很多人都有碰到过:小凹同学开发了一个web应用,服务器环境是: centos 7 + nginx + node4.6 + mongodb3.2.3 最近要上线转载 2016-10-11 00:09:40 · 540 阅读 · 0 评论 -
Golang语言学习资源
一、知名的Golang开源框架1. Beego: 一个国产的HTTP框架,我们可以用它快速开发各种应用程序。官网地址: http://beego.me2. Gogs: 一个国产的自主Git托管服务程序,我们可以用它来搭建自己的Git服务器。官网地址:http://gogits.org3. Docker: 一个软件部署解决方案,也是一个轻量级的应用容器框架。使用D原创 2016-10-10 23:37:47 · 803 阅读 · 0 评论 -
Go项目目录管理
在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:src 包含项目的源代码文件;pkg 包含编译后生成的包/库文件;bin 包含编译后生成的可执行文件。可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.3.3 windows/amd64)1. 创建一个库文件转载 2016-04-15 14:20:21 · 2078 阅读 · 0 评论 -
Go项目的目录结构
项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性1、一般的,一个Go项目在GOPATH下,会有如下三个目录:|--bin|--pkg|--src其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可转载 2016-04-15 14:18:35 · 3284 阅读 · 0 评论 -
在Linux系统中安装Go语言的详细教程
Go (也叫 "golang")是一款由Google最初开发的编程语言。它自诞生就有几个设计原则:简单性、安全性和速度。Go语言发行版拥有各种调试、测试、调优和代码审查工具。如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装。在Ubuntu、Debian 或者 Linux Mint上安装Go语言下面是在基于Debian的发行版上使用apt-get来转载 2016-04-15 11:37:15 · 4221 阅读 · 0 评论