//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
func main() {f, err := os.OpenFile("debug.log", os.O_RDWR, 0666)if err != nil {panic(err)}go func() {defer f.Write([]byte("2"))for {f.Write([]byte("1"))time.Sleep(time.Second)}}()<-time.Tick(5 * time.Second)
}
>11111
1.主函数退出后,所有由主函数创建的携程都会结束2.主函数退出携程内的defer不一定会执行 func main() {messages := make(chan int, 10)done := make(chan bool)defer close(messages)// consumerg...
//go func 和主线程之间的关系是并行和竞争关系package mainimport ("fmt""sync""time"
)var l sync.Mutex
var m *sync.Mutexfunc main() {m = new(sync.Mutex)go lock(1)time.Sleep(3 * time.Second)fmt.Printf("%s\n", "exit!")}
func lock(i int) {println(i, "lock start")m.Lock()println(i, "lock")time.Sleep(3 * time.Second)m.Unlock()println(i, "unlock")
} 原文:http://www.cnblogs.com/rojas/p/4401931.html
golang RPC通信中,有时候就怕读写hang住。那是否可以设置读写超时呢?1.方案一: 设置连接的读写超时1.1 clientRPC通信基于底层网络通信,可以通过设置connection的读写超时时间,达到RPC读写超时的目的。server端和client端代码如下。
server
一个简单的json RPC server。package mainimport ("fmt""log""net""net/rpc""net/rpc/jsonrpc""time"
)type Counter struct {Sum int
}func (this *Counter) Add(i int, r *int) error {...
项目运行指南本指南在Windows环境下使用Goland IDE运行,需要提前配置好Golang环境一、导入项目1、创建目录首先在你的 WorkSpace 中创建 GOPATH 与 GOPROJECT 两个文件夹GOPATH 中包含 src、pkg、bin 这三个目录,需要手动创建,如图:2、配置环境变量GO111MODULE = onGOPATH = D:\WorkSpace\GOPATHGOPROXY = https://goproxy.io打开 cmd 执行 go get -v -u github.com/kataras/iris注意:这里如果没配置GOPROXY会出现被墙的情况。...