go json转换实践中遇到的坑

在使用 go 语言开发过程中,经常需要使用到 json 包来进行 json 和 struct 的互相转换,在使用过程中,遇到了一些需要额外注意的地方,记录如下。整数变浮点数问题假设有一个 Perso...

Go并发调用的超时处理的方法

之前有聊过 golang 的协程,我发觉似乎还很理论,特别是在并发安全上,所以特结合网上的一些例子,来试验下go routine中 的 channel, select, context 的妙用。场景-微服务调用
我...

Go系列教程之反射的用法

反射是 Go 语言的高级主题之一。我会尽可能让它变得简单易懂。本教程分为如下小节。 什么是反射? 为何需要检查变量,确定变量的类型? reflect 包 reflect.Type 和 refl...

关于Golang中range指针数据的坑详解

前言在Golang中使用 for range 语句进行迭代非常的便捷,但在涉及到指针时就得小心一点了。下面的代码中定义了一个元素类型为 *int 的通道 ch :
package mainimport ( "fmt")...

golang bufio包中Write方法的深入讲解

前言bufio包实现了带缓冲的I/O,它封装了io.Reader和io.Writer对象,然后创建了另外一种对象(Reader或Writer)实现了相同的接口,但是增加了缓冲功能。
首先来看没有缓冲功能的Writ...

Golang实现对map的并发读写的方法示例

在Golang多协程的情况下使用全局map时,如果不做线程同步,会出现panic的情况。
为了解决这个问题,通常有两种方式: 第一种是最常见的使用互斥锁或者读写锁的方法; 第二种是比较...

go 下载非标准库包(部份包被墙了)到本地使用的方法

如下所示:import ( "golang.org/x/net/html")在使用此包时,会导入失败,因为这不是go标准库中,但是由于域名被墙了所以翻墙可以下载此包,放入你的GOPATH路径下的 “golang.org/x/...

go各种import的使用方法讲解

go的各种import最简单的:package main import "fmt"func main() { fmt.Println("hehe") // ok}不用说。导入的特殊用法那么, 带一个点, 是什么意思呢? 看看:package main...

用go gin server来做文件上传服务

之前已经go get安装了gin, 现在来玩下用go gin server作图片上传服务, 代码目录如下:taoge:~/test_gin$ tree.|-- public|-- template| `-- select_file.html`-- test_gin_se...

go格式“占位符”输入输出 类似python的input

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf定义示例类型和变量type Human struct {Name string}var people = Human{Name:"zhangsan"}普通占位符占位符...

Golang中重复错误处理的优化方法

Golang 错误处理最让人头疼的问题就是代码里充斥着「if err != nil」,它们破坏了代码的可读性,本文收集了几个例子,让大家明白如何优化此类问题。让我们看看 Errors are values...

Go html/template 模板的使用实例详解

从字符串载入模板
我们可以定义模板字符串,然后载入并解析渲染:template.New(tplName string).Parse(tpl string)// 从字符串模板构建tplStr := ` {{ .Name }} {{ .Age }}`//...

Go语言集成mysql驱动、调用数据库、查询数据操作示例

本文实例讲述了Go语言集成mysql驱动、调用数据库、查询数据操作。分享给大家供大家参考,具体如下:1、安装第三方mysql驱动包go get -u github.com/go-sql-driver/mysql2、连接...

goLang引入自定义包的方法

看完golang的基本语法后,为了模块化编程,试用了下golang的包管理,结果真踩了几个坑,总结一下吧。一. 设置$GOPATH环境变量golang和C或php不一样,不会自动查找当前路径下的文件,必...

go module使用本地包的方法示例

go module的使用非常简单初始化go.modgo mod init整理依赖包go mod tidy如果想缓存到vendor目录go mod vendor执行命令之后都会自动把依赖搞定.
但是, 如果我们是本地开发...

golang读取文件的常用方法总结

使用go语言读取文件的各种方式整理。一次性加载到内存中// * 整个文件读到内存,适用于文件较小的情况//每次读取固定字节//问题容易出现乱码,因为中文和中文符号不占一个字符f...

golang time包的用法详解

在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法,我们从 time 的几种 type 来开始介绍。时间可分为时间点与时间段,golang 也...

go语言的panic和recover函数用法实例

Golang 有2个内置的函数 panic() 和 recover(),用以报告和捕获运行时发生的程序错误,与 error 不同,panic-recover 一般用在函数内部。一定要注意不要滥用 panic-recover,可能会...

Golang命令行进行debug调试操作

GoLang调试工具Delve1.先获取呗:go get -u github.com/derekparker/delve/cmd/dlv2.编写测试代码呗:func main(){ http.HandleFunc("/test",func(writer http.ResponseWrite...

在go中使用omitempty的代码实例

omitempty在go中的使用直接上代码:package mainimport ( "encoding/json" "fmt")type Person struct { Name string `json:"name"` Age int `json:"age"` Addr string...

golang的空标识符理解

空白符(blank identifier)空白符的产生可能是因为go不允许变量声明了但不使用。既然不想使用,何必声明变量呢,那就将变量用空白符代替,反正空白符就是用来抛弃的。我们有时候看到...

go panic时如何让函数返回数据?

现在有这样一个问题:某函数如果正常执行,返回0,如果panic,则返回1,怎么搞呢?package main import "fmt" func test() int { defer func() { if err := recover(); err != nil {...

go for range遍历二维数组的示例

go for range 遍历二维数组var arry [2][3] intfor index,_ := range arry {fmt.Print(index)}运行结果: 0 1 没有遍历所有的6个元素。二维数组 arry 可以理解为:拥有两个...

Go语言在Linux环境下输出彩色字符的方法

Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例:fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B)其中0x1B是标记,[开...

对Golang import 导入包语法详解

package 的导入语法写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下:import( "fmt")然后在代码里面可以通过如下的方式调用:fmt.Println( "我爱北京天安门" )fmt...

返回顶部
顶部