2016-12-22 AnnatarHe
生成二叉树 type Node struct { data string left *Node right *Node } nodeG := Node{data: "g", left: nil, right: nil} nodeF := Node{data: "f", left: &nodeG, right: nil} nodeE := Node{data: "e", left: nil, right: nil} nodeD := Node{data: "d", left: &nodeE, right: nil} nodeC := Node{data: "c", left: nil, right: 继续阅读 »
2017-03-30 LEo
go提供了一个list包,类似python的list,可以存储任意类型的数据,并提供了相应的API,如下: go type Element func (e *Element) Next() *Element func (e *Element) Prev() *Element type List func New() *List func (l *List) Back() *Element func (l *List) Front() *Element func (l *List) Init() *List func (l *List) InsertAfter(v interf 继续阅读 »
2016-04-09 LEo
刚开始学习go语言的时候,看代码中某个类型实现了Error()方法,然后就可以将该类型赋值给error类型。当时还没学习接口,不懂为什么可以这样赋值。学习接口以后,才明白怎么回事。查看go源码,发现内置类型error其实是一个接口类型,并实现了Error()方法,如下: 继续阅读 »
2019-01-19 biezhi
Go 语言也提供了接口类型,使得我们可以面向接口编程,将实现和接口分离。在我看来,软件的抽象之美也应该以此来表达,和 Java 语言不同的是 Go 并不是那么 “强制”,它使用了一种 鸭子类型 的方式让动态类型成为可能。 继续阅读 »
2018-04-27 LEo
本文主要介绍go语言静态库的编译和使用方法,以windows平台为例,linux平台步骤一样,具体环境如下: ``` echo %GOPATH% E:\share\git\go_practice\ echo %GOROOT% C:\Go\ 继续阅读 »
2016-05-20 LEo
开发中常需要获取机器的mac地址或者ip,本文通过go获取机器上所有mac地址和ip,详细代码如下: ```go package main import ( "fmt" "net" ) func getMacAddrs() (macAddrs []string) { netInterfaces, err := net.Interfaces() if err != nil { fmt.Printf("fail to get net interfaces: %v", err) return macAddrs } 继续阅读 »
2018-06-10 Piasy
最近工作需要,对 WebSocket 进行了一点研究,今天在这里给大家分享一下我对 WebSocket 协议、WebSocket 的 Go 语言实现,以及 socket.io 服务端库的 Go 语言实现的理解。 WebSocket 简介 继续阅读 »
2017-04-21 LEo
go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典、哈希表。借助map,可以定义一个键和值,然后可以从map中获取、设置和删除这个值,尤其适合数据查找的场景。但是map的使用有一定的限制,如果是在单个协程中读写map,那么不会存在什么问题,如果是多个协程并发访问一个map,有可能会导致程序退出,并打印下面错误信息: 继续阅读 »
2015-01-08 KasperDeng
| Item | Java | Python | Go | Javascript | |:-----------------|:-----------------|:------------|:--------------------|:-----------| |type | String | str/unicode | string | N/A | |package | import String | primitive | 继续阅读 »
2018-10-26 biezhi
使用任何编程语言开发工程化的项目都缺少不了配置,我们可能要存储一些数据库信息、邮件配置、其他的第三方服务密钥等,而配置文件的类型又有很多种,比如 XML、JSON、YML、INI 等,配置文件又可能分为不同的环境,如 dev、test、prod,这篇文章中带你了解在 Go 中加载配置信息那些事儿。 继续阅读 »