什么是类型断言因为接口是一般类型,不知道具体类型,如果要转成具体类型就要使用类型断言先看简单的(报错的代码)package mainimport "fmt"type Point struct {x inty int
}func main() {var a interface{}p := Point{1,2}a =pvar b Pointb = a//这里会报错fmt.Println(b)
}
用类型断言,没用类型断言无法确定a就是Point类型:package mainimport "fmt"type Point struct {x inty int
}func main() {var a interface{}p := Point...
在golang中并没有class的概念,如果真要说起来就是struct了。struct是一种自定义复杂的类型结构,可以包含多个字段(属性),可以定义方法,可以嵌套,而且struct是值类型。与函数一样,struct如果要被外部访问到:结构体的名称和其中的字段首字母也需要大写。声明struct包含三种声明方式,如实例代码://定义一个学生结构体,有点类似其他语言的类type Students struct {isStudent boolName stringAge intscore in...
创建连接及RabbitMQ结构体实例代码见 https://www.cnblogs.com/prince5460/p/11895844.html1.创建路由模式RabbitMQ实例func NewRabbitMQRouting(exchangeName, routingKey string) *RabbitMQ {//创建RabbitMQ实例rabbitmq := NewRabbitMQ("", exchangeName, routingKey)var err error//获取connectionrabbitmq.conn, err = amqp.Dial(rabbitmq.Mqurl)rabbitmq.failOnErr(err, "Failed to connect rabbitmq!")//获取channelrabbitmq...
今天公司需求两个数组之间的差集,类库下不下来,就独立出来了一份,希望读者有用package modelimport ("sort""sync"
)type Set struct {sync.RWMutexm map[int]bool
}// 新建集合对象
func New(items ...int) *Set {s := &Set{m: make(map[int]bool, len(items)),}s.Add(items...)return s
}// 添加元素
func (s *Set) Add(items ...int) {s.Lock()defer s.Unlock()for _, v := range items {s.m[v] = true}
}// 删除元素
func (s...
//BubbleSort.gopackage mainimport"fmt"func main() {values := []int{4, 93, 84, 85, 80, 37, 81, 93, 27,12}fmt.Println(values)BubbleAsort(values)BubbleZsort(values)
}func BubbleAsort(values []int) {for i := 0; i < len(values)-1; i++ {for j := i+1; j < len(values); j++ {ifvalues[i]>values[j]{values[i],values[j] = values[j],values[i]}}}fmt.Println(values)
}func BubbleZsort(values []int) {for i := 0; i ...
? ? ? 近日小生迷上了golang,用了一个礼拜的闲暇时间,学习了一下golang 的数据结构及并发goroutine。贴一下学习成果,不要见笑,并上传了附件。? ?1:环境搭建? ? ? ? 下载go sdk 并安装? ? ? ? 下载地址:http://dl.iteye.com/topics/download/522115e7-d053-3267-8d3e-efce8fb21ce9? ? ? ? 安装后,配置好环境变量和GOPATH? ? ? ? 我的mac 环境变量设置供参考:export GO_HOME=/usr/local/go
export GO_ROOT=$GO_HOME
export GO...
涉及到的内容GPMgo func()的执行过程参考https://mp.weixin.qq.com/s/SEPP56sr16bep4C_S0TLgA原文:https://www.cnblogs.com/double12gzh/p/13083963.html
Go supports anonymous functions, which can form closures. Anonymous functions are useful when you want to define a function inline without having to name itpackage mainimport ("fmt"
)func intSeq() func() int {i := 0return func() int {i += 1return i}
}func main() {nextInt := intSeq()fmt.Println(nextInt())fmt.Println(nextInt())fmt.Println(nextInt())nextInts := intSeq()fmt.Println(nextInts())
}1231总...
运行环境:golang1.4.2+win7x64golang1.4.2+centos6.5×64 1package Helper 2 3import ( 4 “os” 5 “os/exec” 6 “path/filepath” 7 “strings” 8) 910/*获取当前文件执行的路径*/11 func GetCurPath() string {
12 file, _ := exec.LookPath(os.Args[0])
1314//得到全路径,比如在windows下E:\\golang\\test\\a.exe 15 path, _ := filepath.Abs(file)
1617//将全...
vs code 1:安装go 语言插件 还有软件的中文简体包 2:vscode安装golang插件后,还需要安装Golang插件相关依赖工具。 Ctrl+Shift+P输入Go:Install/Update Tools命令全选一下吧,初学者也不懂就全选。但这里边有失败的情况。 我用fq软件,安装了几次几个包都能成功了 点启动调试 输出:语言世界开门hello world 原文:https://www.cnblogs.com/zuochanzi/p/12464316.html
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。Mac下编译Linux, Windows平台的64位可执行程序:1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build [application | gofile.go]
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build [application | gofile.go]Linux下编译Mac, Windows平台的64位可执行程序:1 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build [application | gofile.go]
2 CGO_ENABLED=0 GOOS...
注意事项:cygwin的~路径,和windows下的~路径可能冲突。 前者为cygwin安装路径(如D:/cygwin),后者看vim的安装配置参考URL:https://blog.csdn.net/pujiao5201314/article/details/77947885其中vim ~/.vimrc下rtp路径应写为/cygdrive/d/home/[your name]/.vim/bundle/Vundle.vim然后安装vim-go后,发现在cygwin目录下的.vim/bundle中,不能看到vim-go。 实际上,是装到了windows目录下的~/.vim/bundle/下了,将其拷贝到cygwin环...
Go操作Mysql数据库使用Go操作MySQL等数据库,一般有两种方式:一是使用database/sql接口,直接在代码里硬编码sql语句;二是使用gorm,即对象关系映射的方式在代码里抽象的操作数据库。一般推荐使用第二种方式。使用database/sql接口Go没有内置的驱动支持任何数据库,但是Go定义了database/sql接口,用户可以基于驱动接口开发相应数据库的驱动。但缺点是,直接用 github.com/go-sql-driver/mysql 访问数据库都是直接写 sql,取出结果...
通过google authenticator完成对用户登录后台如:redmine zabbix 等的双因子改造
github地址:https://github.com/liyinda/google-authenticatorREADME编写的很详细啦,欢迎大家使用~if enjoy it ,please star it原文:http://blog.51cto.com/liyinda/2144744
原文:https://www.cnblogs.com/CRayFish07/p/11577361.html