摘要: fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。 fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 向外输出 标准库fmt提供了以下几种输出相关函数。 Print Print系列函数 阅读全文
posted @ 2020-02-09 17:38 boy° 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法。 time包 time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 时间类型 time.Time类型表示时间。我们可以通过time.Now()函数获取当前的时间对象,然后获取时间对象的年月日时分秒等信 阅读全文
posted @ 2020-02-09 17:21 boy° 阅读(288) 评论(0) 推荐(0) 编辑
摘要: Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os" ) //os.Args demo 阅读全文
posted @ 2020-02-09 17:17 boy° 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 log Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本 阅读全文
posted @ 2020-02-09 17:14 boy° 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了Go语言中文件读写的相关操作。 文件是什么? 计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。 打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。 pack 阅读全文
posted @ 2020-02-09 17:09 boy° 阅读(897) 评论(0) 推荐(0) 编辑
摘要: Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。 strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itia()、parse系列、format系列、append系列。 更多函数请查看官方文档。 string与int类型 阅读全文
posted @ 2020-02-09 17:04 boy° 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现。 HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网 阅读全文
posted @ 2020-02-09 17:00 boy° 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的t 阅读全文
posted @ 2020-02-09 16:55 boy° 阅读(234) 评论(0) 推荐(0) 编辑
摘要: html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容。它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/template这个包。 模板与渲染 在一些前后端不分离的Web架构中,我们通常需要在后端将一些数据渲染到HT 阅读全文
posted @ 2020-02-09 16:49 boy° 阅读(569) 评论(0) 推荐(0) 编辑
摘要: Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 Gin框架介绍 Go世界里最流行的Web框架,Github上有32K+star。 基于httprou 阅读全文
posted @ 2020-02-09 16:36 boy° 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 由于某些不可抗力的原因,国内使用go get命令安装包时会经常会出现timeout的问题。本文介绍几个常用的解决办法。 从github克隆 golang在github上建立了一个镜像库,如https://github.com/golang/net就对应是 https://golang.org/x/n 阅读全文
posted @ 2020-02-09 16:25 boy° 阅读(480) 评论(0) 推荐(0) 编辑
摘要: Go语言的依赖管理随着版本的更迭正逐渐完善起来。 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? godep Go语言从v1.5开始开始引入ve 阅读全文
posted @ 2020-02-09 16:21 boy° 阅读(2200) 评论(0) 推荐(1) 编辑
摘要: 本文主要介绍二进制协议gob及msgpack的基本使用。 最近在写一个gin框架的session服务时遇到了一个问题,Go语言中的json包在序列化空接口存放的数字类型(整型、浮点型等)都序列化成float64类型。 我们构造一个结构体如下: type s struct { data map[str 阅读全文
posted @ 2020-02-09 16:18 boy° 阅读(504) 评论(0) 推荐(0) 编辑
摘要: protobuf是一种高效的数据格式,平台无关、语言无关、可扩展,可用于 RPC 系统和持续数据存储系统。 protobuf介绍 Protobuf是Protocol Buffer的简称,它是Google公司于2008年开源的一种高效的平台无关、语言无关、可扩展的数据格式,目前Protobuf作为接口 阅读全文
posted @ 2020-02-09 16:15 boy° 阅读(245) 评论(0) 推荐(0) 编辑
摘要: RPC算是近些年比较火热的概念了,随着微服务架构的兴起,RPC的应用越来越广泛。本文介绍了RPC和gRPC的相关概念,并且通过详细的代码示例介绍了gRPC的基本使用。 RPC是什么 在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该 阅读全文
posted @ 2020-02-09 16:13 boy° 阅读(364) 评论(0) 推荐(0) 编辑
摘要: MySQL是常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。 我们常用的数据库基本上都有完整的第三方实现 阅读全文
posted @ 2020-02-09 16:08 boy° 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 在项目开发中redis的使用也比较频繁,本文介绍了Go语言如何操作Redis。 Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis 阅读全文
posted @ 2020-02-09 16:01 boy° 阅读(297) 评论(0) 推荐(0) 编辑
摘要: Markdown 简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。 Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建。 Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档 阅读全文
posted @ 2020-02-09 15:48 boy° 阅读(228) 评论(0) 推荐(0) 编辑