Go语言中利用append巧妙的删除slice切片中的元素 发布时间: 2021-02-15 16:23:11 评论数: 0
数组[a b c],我要删掉第二个元素。余下[a c]注意参数的索引package main import ( "fmt" ) //删除函数 func remove(s []string, i int) []string { return append(s[:i], s[i+1:]...) } func main() { s := []string{"a", "b", "c"} fmt.Println(s) s = remove(s, 1) fmt.Println(s) } ......
GoLang中使用SQLite后跨平台交叉编译之docker篇 发布时间: 2021-02-14 11:39:16 评论数: 0
编译环境: Mac+Docker因为sqlite使用了cGo,所以跨平台编译的时候,需要将相关依赖包也处理一下。这儿推荐使用xgo打包工具,结合Docker。本教程适用于Mac 。当然,另外一个解决方法是,安装不同的虚拟机。分平台打包。安装docker、配置Go环境省略拉取镜像docker pull karalabe/xgo-latest安装打包工具(它的作用就是调用docker镜像中的命令)go get github.com/karalabe/xgo平台参数--targets=linux/arm : builds only the ARMv5 Linu ......
go代码interface转map 发布时间: 2021-02-12 22:55:46 评论数: 0
今天遇到一个问题如下代码,我要通过rs去打印出ddd package main import "fmt" func main() { var rs interface{} rss := make(map[string]string) rss["aaa"] = "ddd" rs = rss fmt.Println(rs) } 从上面的代码中我们可以看出来,rs已经是一个map了,但是按照map的打印方式,就是报错 message: 'invalid operation: rs["ddd"] (type interface ......
Go语言生成指定长度范围的随机数值 发布时间: 2021-02-10 11:24:02 评论数: 0
想要生成1000-9999之间的随机数值import ( "math/big" "crypto/rand" ) func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.Int64()<min{ RandInt64(min,max) } return i.Int64() }调用rnd := util.RandInt64(1000,9999) ......
go开发工具推荐 发布时间: 2021-02-07 15:28:14 评论数: 0
程序的开发工具直接影响到开发的效率,下面我来推荐一款go语言的开发工具vs code 之前用sublime+gosublime,感觉不是很好 主要问题 1 代码不提示不全,比如我定义一个struct,struct这个单词不提示 2 我输入一个包不自动加载一个包 3 不能在使用的包上查看包 4 鼠标移到方法上面没有提示 下面我开始介绍vs code 官方网站 # 有人搞了一个中文版 http://www.vscode.org/ 有时候被墙 下面用截图来展示 这些功能大大方便了开发 ......
go 常见的配置文件格式与使用 发布时间: 2021-02-06 00:47:14 评论数: 0
每一个系统都需要配置文件,比如mysql的配置,redis的配置,mail的配置等,在go语言中经常使用到哪种格式的配置文件 ①使用json conf.json文件 { "enabled": true, "path": "/usr/local" } main.go文件 package main import ( "encoding/json" "fmt" "os" ) type configuration struct { Enabled bool Path string } func ......
go fmt String接口 发布时间: 2021-02-04 04:47:18 评论数: 0
之前看到一段代码,输出接口让我无法理解,如下 package main import "fmt" type Person struct { Name string Age int } func (p Person) String() string { return fmt.Sprintf("%v (%v years)", p.Name, p.Age) } func main() { a := Person{"Arthur Dent", 42} z := Person{"Zaphod Beeblebrox" ......
nsq消息队列安装测试 发布时间: 2021-02-02 02:48:00 评论数: 0
nsq是go语言实现的消息队列 PS.nsq安装必须是go版本1.6之上,要安装gpm nsq源码安装 yum install gpm gpm install go get github.com/nsqio/nsq/...   cd $GOPATH/src/github.com/nsqio/nsq/ ./test.sh 这个test.sh的脚本会自动检测和编译nsq项目,我在本地虚拟机里执行就没有成功在阿里云的机子上执行成功的 PS.nsq还有docker,这个可以到docker官方去搜索 nsqd节点维护进程 nsqlookupd & nsqd节点进程 nsqd -- ......
go语言的iota 发布时间: 2021-01-30 08:53:27 评论数: 0
网上看了看iota.反正是没看大懂.给个例子自己悟吧package main import ( "fmt" ) const ( TestMin = -1 TestA TestB = iota TestC ) func main() { fmt.Printf("TestMin:%d\n", TestMin) fmt.Printf("TestA:%d\n", TestA) fmt.Printf("TestB:%d\n", TestB) fmt.Printf("TestC:%d\n", TestC) }输出结果TestMin:- ......
nsq nsqlookupd中的go-svc包 发布时间: 2021-01-27 05:52:23 评论数: 0
nsqlookupd使用go-svc包来启动的 github地址:https://github.com/judwhite/go-svc 这个包我看到了类似于守护进程的方式运行程序,下面是一个demo,go-svc也是使用了这个方法 package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { c := make(chan os.Signal, 1) sig := []os.Signal{syscall.SIGINT, syscall ......
nsq nsqlookupd代码解析(一) 发布时间: 2021-01-25 19:32:39 评论数: 0
之前的文章nsq安装【推荐阅读:nsq消息队列安装测试】,最后执行了./test.sh,这个脚本其实就遍历文件夹build go程序,具体遍历了apps和bench文件夹的程序 这里主要讲nsqlookupd build这个github.com/nsqio/nsq/apps/nsqlookupd/nsqlookupd.go程序 这个文件主要使用了go-svc的包 github地址:https://github.com/judwhite/go-svc 运行一下他的Example我猜测Init方法应该跟init方法等同,之后执行Start方法,当执行关闭的时候执行Stop方法 代码清单g ......
Go语言的包管理 发布时间: 2021-01-23 18:17:48 评论数: 0
1 概述Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。2 main包Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,需要import导入!3 包定义,packageGo 语言的包与文件夹一一对应,同一个目录下的所有.go文件的第一行添加 包定义,以标记该文件归属的包,演示语法:package 包名包需要满足:一个目录下的同级文件归属一个包。包名可以与其目录不同名。包名为 main 的包为应用程序的入口包,其他包不能使用。包可以嵌套定义,对应的就是嵌套目 ......
Go 编译应用软件相关设置 Golang的跨平台编译程序 发布时间: 2021-01-22 00:35:58 评论数: 0
各平台的GOOS和GOARCH参考OSARCHOS versionLinux386 / amd64 / arm>= Linux 2.6darwin386 / amd64OS X (Snow Leopard + Lion)freebsd386 / amd64>= FreeBSD 7Windows386 / amd64>= Windows 2000编译方法例如linux的64位软件CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o 存放位置 ./main.gomac的64位就是CGO_ENABLED=0 GOOS=d ......
go语言学习资料 发布时间: 2021-01-18 21:37:08 评论数: 0
最近有在看go语言,网上的资料还不是很多,现在把有用的资料分享一下,发现还有新的资源会持续更新 Go Web 编程 # Go语言圣经(中文版) # Go入门指南 # Go 编程基础(视频) # Go Web基础(视频) # 我还买了本《go 语言实战》刚开始看了两章,感觉还不做 ......
nsq nsqlookupd代码解析(二) 发布时间: 2021-01-17 16:06:09 评论数: 0
nsqlookupd.go Main里主要是侦听两个服务tcp 服务和http 服务 代码片段 github.com\nsqio\nsq\nsqlookupd\nsqlookupd.go func (l *NSQLookupd) Main() { ctx := &Context{l} //监听tcp tcpListener, err := net.Listen("tcp", l.opts.TCPAddress) if err != nil { l.logf(LOG_FATAL, "listen (%s) faile ......
go 条件编译 发布时间: 2021-01-14 17:29:24 评论数: 0
最近在看nsq 的nsqlookupd 其中用到了go-svc包,于是顺带看了一下代码,其中有一点不是很明白,就是一个包里出现了相同的方法,程序也没有报错, svc_other.go文件和svc_windows.go文件都实现了Run方法 终于知道他是怎么实现的 原因在于是 svc_other.go文件最上面 // +build !windows svc_windows.go文件最上面 // +build windows 这个是go语言的条件编译,之前没有遇到过,所以要写文章记录一下 // +build !windows 这个是不在windows下可以编译 // +build win ......
Go包管理工具godep 发布时间: 2021-01-12 10:31:16 评论数: 0
godep是go的包管理工具 github:https://github.com/tools/godep 安装方式 go get github.com/tools/godep 使用godep包管理工具不能在使用go run和go build,如果直接使用还是会到GOPATH目录下去找第三方库 正确做法 godep go run godep go build 项目目录下执行执行godep save,此时会生成Godeps文件夹,同时会把所需的包放到vendor文件夹中 ......
GoLang语言中处理后台给过来的JSON格式的API数据 发布时间: 2021-01-09 18:07:43 评论数: 0
比如我要取如下json中的gid.而且是循环取.json格式大概如下.挺常见的.{ module: 'chat', method: 'message', result: 'success', data: [ { id, gid, content, }, .... ] }Go有一个json处理的函数,暂不管它。说说我实际中用到的部分//先判断有没有data if _, ok := json["data"]; ok ......
Go原生支持javascript ajax post跨域请求的方法 发布时间: 2021-01-06 19:12:47 评论数: 0
最近开始入手Go.这儿将平时整理的记录一下.今天的需求是,客户端请求GoServer,然后需要支持跨域.开启贴代码模式func main() { mux := http.NewServeMux() mux.HandleFunc("/lvtao", lvtao) if err := http.ListenAndServe("127.0.0.1:8080", mux); err != nil { //这儿报错 } } func lvtao(w http.ResponseWriter, r *http.Request) { ......
排序算法入门 — GO 语言实现 发布时间: 2021-01-03 22:08:26 评论数: 0
排序算法是一种采用列表或数组并以特定顺序对其元素进行重新排序的算法。有几十种不同的排序算法,如果你已经学习了计算机科学,那么你至少熟悉了其中的一些算法。 它们也是很受欢迎的面试问题,所以在重要面试前不要因为它而伤心。这是一个大多数常见的排序算法的小型引擎,实例采用 Golang 实现。冒泡排序冒泡排序是最基本的就地排序算法,几乎每个人都很熟悉。 它具有 O(n²) 最坏情况和平均时间复杂度,这使得它在大型列表中效率低下。它的实现非常简单。在循环中,从第一个元素到第 n 个(n = len(items))迭代数组。比较相邻的值,如果它们的顺序错误,交换它们。 您可以通过在每次迭代后将 n 递减 ......


友情链接: php5000技术知识分享 github 码云 开源中国 csdn linux中国 阿里云 unix技术网 composer中文网 php packagist php python 安卓软件 大众源码 DevStore 猪八戒威客网 人人都是产品经理 PHPwind论坛 互联网的一些事 新客网 黑马程序员 火星时代 hao123it ThinkSNS 开源社区 51CTO学院 办事儿网 IT论坛 java教程 最代码 程序员客栈 大数据培训 小程序开发 微信小程序 php开发新闻 微信小程序 java学习 微信小程序 Linux书籍 网站ip流量 xw素材网 新浪云 腾讯云 华为云 百度 新浪 网易 淘宝 腾讯 1688 搜狐 优酷 房天下 hao123 携程 天涯社区