10 2021 档案
摘要:在使用 go 这样的强类型语言时,我们常常会遇到类型转换的问题。比如 int 类型转 int64,interface{} 转 struct ,对一种类型取指针、解指针等等。今天在这篇文章中我们就来梳理一下,我们在 go 的日常使用中常碰到的几个类型转换场景。 go存在4种类型转换分别为:断言、强制、
阅读全文
摘要:一、标准日志库log 在日常开发中,日志是必不可少的功能。虽然有时可以用fmt库输出一些信息,但是灵活性不够。Go 标准库提供了一个日志库log。 1、快速使用 log是 Go 标准库提供的,不需要另外安装 package main import ( "log" ) type User struct
阅读全文
摘要:在 Golang 里有专门的方法来实现锁,就是 sync 包,这个包有两个很重要的锁类型 一个叫 Mutex, 利用它可以实现互斥锁。一个叫 RWMutex,利用它可以实现读写锁。 特别说明: sync.Mutex 的锁是不可以嵌套使用的 sync.RWMutex 的 RLock()是可以嵌套使用的
阅读全文
摘要:一、通过结构(struct) 实现 接口(interface) 1、在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为接收器,来调用方法,有点好奇这样做有什么意义。 解释:在 Go 语言中,一个 struct 实现了某个接口里的所有方法,就叫做这个 struct 实现了该接口。 2、
阅读全文
摘要:一、了解一些概念 Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能。不用多说,log支持并发操作(即协程安全-相对于JAVA中的线程安全而言),其结构定义如下: type Logger struct { mu sync.Mutex // ensures atomic writes;
阅读全文
摘要:time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 time 类型 type Time struct { // wall and ext encode the wall time seconds, wall time nanoseconds, // and optional mono
阅读全文
摘要:众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办? 这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下 在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?): 代码如下: package main import ( "fmt" "log
阅读全文