网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
Golang 中的接口 (interface)
依赖于接口而不是实现,优先使用组合而不是继承,这是程序抽象的基本原则。Golang中的`interface`让编码更灵活、易扩展,使得Go拥有了面向对象多态的特性。在此我们记住三点就够了:1.方法声明的集合2.任何类型的对象实现了在接口中声明的全部方法,则表明该类型实现了对应接口。3.可以作为一种数据类型,实现了该接口...
阅读全文
Golang入门之Json解析
释义>>JSON是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。>>其他语言转过来的童鞋,特别是Android开发者是无可避免使用到Json的解析工作,而在Golang中对Json的操作也是非...
阅读全文
Golang Gin 框架 Route备注
路由__packagemainimport("github.com/gin-gonic/gin""time""log")funcmain(){//初始化router:=gin.New();//常规操作router.POST("/",func(context*gin.Context){context.JSON(200,"...
阅读全文
Golang 运维脚本
记录编译工具代码Makefile替换binary路径使用__BINARY={Path}GOARCH=amd64VERSION?=?BUILD=`date+%FT%T%z`LDFLAGS=-ldflags"-Xmain.Version=${VERSION}-Xmain.Build=${BUILD}".PHONY:help...
阅读全文
Golang文件读写
**参考**>[Go实战-->golang中读写文件的几种方式](https://link.jianshu.com?t=http%3A%2F%2Fblog.csdn.net%2Fwangshubo1989%2Farticle%2Fdetails%2F74777112)**读文件**读取的文件放在file/test:也就...
阅读全文
Golang网络请求
**说明**>本文主要分为服务器和客户端**服务器**服务器监听http请求类型主要常用到以下几种方式:*解析get的form表单*解析post的方式解析json对象*解析以表单的方式解析postform数据**解析get的form表单**__funcGetService(whttp.ResponseWriter,r*...
阅读全文
Golang defer总结
0Golang有一个特殊的控件语句,那就是defer,defer语句用于延迟调用指定的函数,比如释放资源等,它会在函数最后执行,但在return之前,先让我们看代码简单了解下:__packagemainfuncmain(){test()}functest(){println("test1")deferfunc(){pr...
阅读全文
golang原生http和rpc服务集成
今天做了个小实验,验证了用go语言的原生http模块和编写的http服务器可以利用rpc模块同时提供rpc调用功能。但是遗憾的是,如果是用fcgi模块编写的服务器就不能集成rpc服务。关键点:第一,rpc功能要用rpc.NewServer新建服务对象,不能用默认对象,因为只有新建对象的HandleHTTP可以设置htt...
阅读全文
Golang解析json的特殊情况处理
Go解析json遇到了大数字、不定格式等特殊情况,在此做了一个整理。UnmarshalvsDecode选择哪个要视输入而定。`json.Unmarshal`操作对象是一个`[]byte`,也就意味着被处理的JSON要全部加载到内存。如果有一个加载完的JSON使用`json.Unmarshal`会快一些。`json.De...
阅读全文
golang标准库reflect的魔法运用
本文要解决什么问题?有时候我们为了简化代码,需要包装使用一些参数数量可变的函数,例如数据库查询用的Query、Exec等函数,你的SQL语句中有多少个“?”,后面就要对应提供多少参数。要包装这样的函数,使用reflect库是唯一的选择。实现方法废话不多说,下面就说说实质性的内容。思路总体上就是依靠_reflect.Va...
阅读全文
golang学习笔记:如何选择方法的receiver类型
在写代码的过程中,经常会会涉及到方法的receiver类型选择的问题,通常会纠结于用T还是*T,记住以下原则问题便迎刃而解:*要修改实例状态,用*T。*无须修改状态的小对象或固定值,建议用T。*大对象建议用*T,以减少复制成本。*引用类型、字符串、字典、函数等指针包装对象,直接用T。*若包含Mutex等同步字段,用*T...
阅读全文
Golang笔记-Plugin初探
前言最近在学习fabric1.2版本的新特性,其中有一个是实现了交易背书和区块结果验证这两个原本由系统链码`escc`和`vscc`负责的模块的可插拔。它们的可插拔用到了Go的plugin技术,这也是我第一次知道GoPlugin的概念(虽然在Go1.8版本就有了),于是准备探一探究竟GoPlugin是什么,怎么用。什么...
阅读全文
golang 设置 http response 响应头与坑
**1、设置WriteHeader的顺序问题**之前遇到个问题,在一段代码中这样设置WriteHeader,最后在header中取Name时怎么也取不到。__w.WriteHeader(201)w.Header().Set("Name","mynameissmallsoup")用golang写httpserver时,可...
阅读全文
Docker 部署golang程序
问题我写好了一个基于gin的web程序,另外还有一些依赖。我费了千辛万苦才把依赖下载下来,我不想在docker镜像里面在下载一次依赖,如何能够快速的给我构建一个镜像。有问题的解决方法`golang`作为编译型语言,运行的是编译完成的二进制可执行文件,该文件是与运行系统有关的。我的开发系统是ubuntu1604。所以我的...
阅读全文
Golang Tag
我们可以通过`Tag`来增强结构体的定义,Tag会带上一些meta信息,在本文中我们将通过几个例子来深入了解`Tag`的用法。结构`Struct`是由一组`field`组成,每个`field`包括了名字(可选)和字段类型__packagemainimport"fmt"typeT1struct{f1string}type...
阅读全文