Golang-filepath 使用 获取当前目录 os.GetPWD() filepath.Abs(path) # 绝对目录 filepath.Dir(path) # 相对目录 可以 filepath.Abs(file…
标签:go
go中range
range 迭代各种各样的数据结构。 range遍历数组示例: package main import "fmt" func main() { rangeTest() } // range func rangeTest(…
go语言reflect包使用的几个场景
reflect包的几个使用场景: 1. 遍历结构体字段名(避免代码的硬编码)2. 调用结构体方法(自动映射)3. 获取结构体的tag标记的值(json/xml转换) 4. // @todo更多的使用场景 代码: 一、$G…
win10 go sublime text3开发环境搭建
安装go 打开golang官网 https://golang.org/,点击下载需要的平台的安装版本,推荐msi,下载完成之后,点击安装,默认设置即可,安装完成go的相关环境变量均会自动设置完成。如果已经安装过go,忽略…
闭包(Closure)
思考 当多个函数需要使用某个变量时,我们可以把该变量定义为全局变量。当某个变量只有一个特定函数才会使用到时,如果把它定义为全局变量,又不能保证其它函数不会使用它,这时候该怎么办呢?比如统计某个函数的访问次数,如果可以在函…
go语言中import不允许循环包含
go的包不允许循环包含,具体例子: main.go: package main import ( "fmt" "test/pkg1" ) func main() { fmt.Println("in main.main")…
Go的内存模型
转载请注明出处,原文链接http://tailnode.tk/2017/01/Go… 说明 翻译自The Go Memory Model 介绍 如何保证在一个goroutine中看到在另一个goroutine…
一个比 UUID 快百倍的唯一 ID 生成器
前言 在游戏开发中,我们经常要为 Request、对象或其它东西设置全局唯一的 ID。常见的选择有随机数、时间戳、UUID、用 Redis 生成 ID 等,这些选择要么可能重复,要么太慢,于是我开发了 WUID,一个极快…
(三)golang开箱即用container heap、list、ring
package main import ( "container/heap" "fmt" ) type IntHeap []int //我们自定义一个堆需要实现5个接口 //Len(),Less(),Swap()这是继承…
Go语言的类型系统
Go语言允许用户定义类型。当用户声明一个类型时,这个声明就给编译器提供了一个框架,告知必要的内存大小和信息。 声明结构类型 type user struct { name string email string } 上述…
【go共识算法】-POS
pos介绍 参考链接1 pos概念 Proof of Stake,股权证明。PoS核心概念为币龄,即持有货币的时间。例如有10个币、持有90天,即拥有900币天的币龄。另外使用币,即意味着币龄的销毁。在PoS中有一种特殊…
golang中接口赋值与方法集
接口使用疑问 golang中的接口可以轻松实现C++中的多态,而且没有继承自同一父类的限制,感觉方便很多。但是在使用的时候,如果没有理解,也可能会遇到”坑”。比如《Go语言实战》中的一个例子: p…