Go语言中文网 为您找到相关结果 94

Golang依赖管理工具:glide从入门到精通使用

介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍gilde。 glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷。罗列一下golang的 get 子命令管理依赖有很多大缺陷: 能拉取源码的平台很有限,绝大多数依赖的是 github.com 不能区分版本,以至于令开发者以最后一项包名作为版本划分 依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get 只能依赖本地全局仓库(GOPATH/GOROOT),无法将库...阅读全文

博文 2017-07-22 05:33:09 梦朝思夕

golang中list包使用方法

package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack(4) l.PushBack(5) l.PushBack(6) l.PushBack(7) l.PushBack(17) l.PushBack(27) l.PushBack(71) l.PushBack(74) //fmt.Println(l.Back().Value) //fmt.Println(l.Front().Value) for p := l.Front(); p != nil; p = p.Next() { fmt.Println(p.Value) } ...阅读全文

博文 2014-10-04 19:27:07 xlplbo

Go语言ssh简单的使用

package main import ( "bufio" "go-ssh/ssh" "os" ) func main() { SSH("user", "password", "ip_port") } func SSH(user, password, ip_port string) { PassWd := []ssh.AuthMethod{ssh.Password(password)} Conf := ssh.ClientConfig{User: user, Auth: PassWd} Client, _ := ssh.Dial("tcp", ip_port, &Conf) defer Client.Close() a := bufio.NewReader(os.Stdin) for { b...阅读全文

博文 2015-06-17 23:02:28 fyxichen

golang中的类和接口的使用

类使用:实现一个people中有一个sayhi的方法调用功能,代码如下: type People struct { //.. } func (p *People) SayHi() { fmt.Println("************************* say hi !!") } func (this *LoginController) Get() { p := new(People) p.SayHi() this.TplName = "login.html" } 接口使用:实现上面功能,代码如下: type People struct { //.. } func (p *People) SayHi() { fmt.Println("*************************...阅读全文

博文 2016-04-26 01:00:00 vipstone

golang -- ToString

字符串拼接 package str import ( "strconv" ) func ToString(args ...interface{}) string { result := "" for _, arg := range args { switch val := arg.(type) { case int: result += strconv.Itoa(val) case string: result += val } } return result } 使用ToString("abcd", 12, 45) => abcd124...阅读全文

博文 2014-10-04 19:26:56 flyking

go项目工程目录组织和GOPATH设置

Golang没有工程文件的概念,是通过目录结构来体现工程的结构关系的。 刚开始写go程序的时候只有一个主程序文件(如main.go),也就没太在意go项目工程组织的重要性。最近着手看看网上的开源项目,感觉自己的go项目工程目录组织的太烂了,所以特意重新整理了一下。 按照go官方文档需要把项目根目录地址加到环境变量GOPATH里去,然而,在学习和工作中开发的程序中有多个项目,如果把每个项目的路径都加载到环境变量GOPATH里,那么不过多久环境变量GOPATH里的字符串想必就会超出微软定义环境变量的最大长度。所以本人使用了相对变量,即减少了目录太长也方便管理。效果如下...阅读全文

博文 2015-06-18 03:00:00 hezhixiong

个人犯的一个golang routine错误

认识golang也不少时间了,也做过几个项目。最近发现之前用golang写的一个服务,内存涨得比较快,一直没找出来原因来。今天把疑惑发到群里,经过golang学习班的童鞋的指点,发现我一个常用的错误。 在不少golang入门的文章上,用并发的例子一般是这样写的; package main import ( "fmt" "time" ) func main() { messages := make(chan int) go func() { time.Sleep(time.Second * 3) messages <- 1 }() go func() { time.Sleep(time.Second * 2) messages <- 2 }() go func() { time.Sleep(t...阅读全文

博文 2015-01-16 18:00:01 nonsuch

分享文件或路径相关的便利函数

Go 标准库不少函数封装很少,不像 PHP 那样,很多功能一个函数搞定。这里封装了一些文件或路径的便利操作,方便使用。 package files import ( "os" ) // 检查文件或目录是否存在 // 如果由 filename 指定的文件或目录存在则返回 true,否则返回 false func Exist(filename string) bool { _, err := os.Stat(filename) return err == nil || os.IsExist(err) } // 列出指定路径中的文件和目录 // 如果目录不存在,则返回空slice func Scan...阅读全文

golang中使用kafka

golang中比较好用的kafka client有 sarama confluent-kafka-go go_kafka_client optiopay-kafka siesta 其中 sarama的使用者应该是最多的, 然后还有一个sarama的cluster版本sarama-cluster 本文简单描述下sarama的一些简单使用 生产者接口 func producer_test() { fmt.Printf("producer_test\n") config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll config.Producer.Partitioner = sarama.NewRand...阅读全文

博文 2018-09-29 18:34:37 yandaren

golang log使用

使用golang的基本log包能够满足日志的问题,特地做了一个例子如下,但感觉还是不太好,如日志文件的大小的控制等。先这样用着吧package mainimport ( "log" "os")func main(){ fileName:= "log_debug.log" //logFile,err := os.Create(fileName) logFile,err := os.OpenFile(fileName,os.O_RDWR|os.O_CREATE|os.O_APPEND,0644) defer logFile.Close() if err != nil { log.Fatalln("open file error!") } debugLog := log.New(logFile,"...阅读全文

博文 2017-05-17 07:16:24 haolifengwang

GroupCache:Go 语言实现的 memcached

memcached作者Brad Fitzpatrick用Go语言重新实现了memcached,新的项目名称为groupcache,现已在Google多个生产环境中投入使用。对比老版本memcached,groupcache去掉了缓存有效期及缓存回收机制,随之而来的是通过自动备份来均衡负载。项目地址:https://github.com/golang/groupcache国内镜像地址:https://code.csdn.net/OS_Mirror/groupcache对比原始memcached首先,groupcache与memcached的相似之处:通过key分片,并且通过key来查询响应的peer。其次,groupcache与memcached的不同之处:不需要对服务器进行单独的设置,这将大...阅读全文

博文 2015-06-17 20:06:15 heiyeshuwu

golang实现Ringbuf

Ring buffer算法优点:高内存使用率,在缓冲buffer内存模型中,不太容易发生内存越界、悬空指针等 bug ,出了问题也容易在内存级别分析调试。做出来的系统容易保持健壮。 package main import ( "bytes" "fmt" ) type Ringbuf struct { buf []byte start, size int } func New(size int) *Ringbuf { return &Ringbuf{make([]byte, size), 0, 0} } func (r *Ringbuf) Write(b []byte) { for len(b) > 0 { start := (r.start + r.size) % len(r.buf) n ...阅读全文

博文 2015-10-20 23:00:12 webyh

regexp的使用

我想取得href和之间的值..但都不成功..代码如下 之间有""就匹配不出来了 s := `< ahref="iiiii">jjjjjj,< ahref="kkkk">llll,punch,pinch` r := regexp.MustCompile(`< ahref="([^"]+)">([^]+)`) fmt.Println(r.FindString(s)) fmt.Println(r.FindAllString(s, -1)) fmt.Println(r.FindAllStringSubmatch(s, -1)...阅读全文

go中struct的使用

我想问下以下两种使用struct方法怎么理解,我先写段代码: type Person struct { name string age int } func (p *Person) SetName(name string) { p.name = name } func (p *Person) SetAge(age int) { p.age = age } /** *使用&来创建新的Person,但是需要初始化值。 */ func NewPerson1() *Person { p := &Person{"lauking", 29} return p } /** *使用ne...阅读全文

golang flag使用示例

package main import ( "fmt" "flag" ) func main(){ data_path := flag.String("D","/home/manu/sample/","DB data path") log_file := flag.String("l","/home/manu/sample.log","log file") nowait_flag :=flag.Bool("W",false,"do not wait until operation completes") flag.Parse() var cmd string = flag.Arg(0); fmt.Printf("action : %s\n",cmd) fmt.Printf("data pat...阅读全文

博文 2015-08-31 19:00:01 徐学良

调查显示:明年容器企业级用户将出现井喷式增长

如果调查可信的话,很多企业已经将容器技术投入使用,但这只是冰山一角,而未来几年将会迎来井喷式增长。另外值得注意的是,对于系统管理员来讲,安全仍然是最大的担忧。 容器安全公司Twistlock的一项调查显示,有将近86%的企业IT决策者表明他们已经使用容器技术,或者将在未来一年内使用容器技术。值得一提的是,这86%的调查者中,有35%表示容器技术已经在企业广泛使用。 来自ClusterHQ的调查也证实了这一点:在285名调查对象中有94%表示在过去的一年里他们要么调研过容器技术,要么已经在企业中实际使用过一些容器技术。和Twistlock调查结果稍微不同的是,有38%表示他们已经把容器投入到生产环境。但65%的人表示,到明年他们公司才会应用容器技术到生产环境。ClusterHQ 为...阅读全文

(知乎)好的客服系统对App的影响究竟有多大?

**秦川回复:** 我来回答楼主的问题吧,对于这个问题,可以说我有切身的感受。 我们的产品是一款生活服务类APP,叫生活半小时,不知道您听过没有。在投入使用初期我们就发现,当用户量呈现上升趋势时,我们的客服环节开始出现滞后的现象,用户的问题得不到及时的支持和解决导致用户体验不佳。起初我们认为是客服数量不够多,于是一味地扩大客服团队,导致客服成本直线上升,花销巨大。后来我们便开始着手讨论是否在客户服务系统方面存在欠缺,应该寻求外力支持。此前,在移动客服领域能全面解决此类问题的客服解决方案并没有,国内有几款相关的产品但是在反复比较试用后,都没有感觉太满意,而Udesk的出现让我们眼前一亮,一番试用后最终选择了Udesk这一专业的移动客服管理平台。 我们这时候才发现,专业的客户服...阅读全文

QNAP之如何使用第三方百度网盘挂到nas上下载

型号:TS-231P 配置:ARM Cortex-A15 CPU @ 1.70GHz | 1G内存 目的:为nas配置百度云盘,并下载文件 要求:对基本Linux操作有所了解 简介 本人不想浪费电开个电脑去下百度网盘 于是想挂在nas下,10kb/s也无所谓 一番探索后发现GitHub上有许多第三方Linux的百度网盘 本文推荐1款个人觉得还不错的项目 BaiduPCS-Go golang编写的,个人用下来觉得 fmt.Println("棒棒哒!") 如果你对Linux操作不熟悉也可以使用web版, baidupcs-web 个人觉得web版有点小问题,用的不是很顺手 两者的前期准备工作都是一样的 流程概述 1.下载BaiduPCS-Go 2.创建Ubuntu的docker容器 3.启动,使...阅读全文

博文 2020-01-02 11:33:43 Ashin10

golang md5值计算

golang内置了md5的算法,这里只是封装一层,方便使用 func MD5Bytes(s []byte) string { ret := md5.Sum(s) return hex.EncodeToString(ret[:]) } //计算字符串MD5值 func MD5(s string) string { return MD5Bytes([]byte(s)) } //计算文件MD5值 func MD5File(file string) (string, error) { data, err := ioutil.ReadFile(file) if err != nil { return "", err } return MD5Bytes(data), nil } 查看更多: https:...阅读全文

博文 2019-04-17 03:34:41 小风吹的我乱了

VS Code中如何关闭保存Go语言文件时自动去除未引用包的行为

在使用Visual Studio Code编写Go语言(Golang)程序代码的时候,有时候引用的包明明是正确引用了,但在保存的时候却会被自动删除掉,是被误认为未引用了。这时候,参照以下步骤就可以解决。在VS Code中的Preference的Settings中搜索goimports,会看到“Go: Format Tool”一项,将使用的goreturns或goimports换成gofmt即可。因为goreturns或goimports都会自动做自动包导入或者将未引用的包去除的工作。当然,这样设置了之后,使用到了但却没有导入(import)的包一定要记得自己手动确保导入。方便性两者不可兼得...阅读全文

博文 2020-04-18 17:32:48 陆满庭

Golang Struct 声明和使用

开发十年,就只剩下这套Java开发体系了 >>> Golang Struct 声明和使用 (adsbygoogle = window.adsbygoogle || []).push({}); function googleAdJSAtOnload() { var element = document.createElement("script"); element.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; element.async = true; document.body.appendChild(element); } if (window.addEventListener) { window.ad...阅读全文

博文 2018-09-23 01:33:17 coderminer

golang 接口参数 简单使用

package main import "fmt" type IAnimal interface { Run() } type Animal struct{} func (a *Animal) Escape(ianimal IAnimal) { ianimal.Run() } func (a *Animal) Run() { fmt.Printf("Animal Run.\n") } type Dog struct { s Animal } func (d *Dog) Run() { fmt.Printf("Dog Run.\n") } func main() { dog := &Dog{} dog.s.Escape(dog) //触发 Dog Run ad:=&Animal{} ad.Es...阅读全文

博文 2018-01-29 19:33:03 304158

GO模板的使用

//方法一 t, err := template.New("").Funcs(template.FuncMap{"Test": tools.Test}).ParseFiles("views/index.html") checkError(err) data := map[string]string{"key1": "value1", "key2": "value2"} t.ExecuteTemplate(w, "index.html", data) //方法二 t := template.New("name") t = t.Funcs(template.FuncMap{"Test": tools.Test}) bytes, err := ioutil.ReadFile("views/inde...阅读全文

博文 2014-10-18 10:00:01 别人说我名字很长

在Mac OS X(10.7.5)下安装和使用GO语言

在Mac OS X(10.7.5)下安装和使用GO语言 转载自:http://blog.prosight.me/index.php/2010/08/655,进行部分修改; Go语言是Google新推出的结合了动态语言和静态语言优势的一个新兴的语言。下面介绍一下如何在Mac系统下安装和使用这个语言。 1、设置环境变量: $GOROOT GO语言的根目录,通常是$HOME/go,当然也可以是任何其他目录。 $GOOS 和 $GOARCH 标明GO语言所在的系统和处理器类型。$GOOS可以是linux, freebsd, darwin (Mac OS X 10.5 or 10.6)和 nacl (Native Client, an incomplete port)。$GOARCH可以是amd64 ...阅读全文

博文 2014-10-09 19:00:00 dabiaoyanjun

Mac OS X系统搭建谷歌Go语言开发工具 Sublime Text 环境配置

载地址:http://www.cr173.com/html/33948_1.html Go语言是谷歌自家的编译型语言,旨在不损失性能的前提下降低代码复杂率。其优势是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。 一、安装Golang的SDK 在官网http://golang.org/ 直接下载安装包安装即可。下载pkg格式的最新安装包,直接双击运行,一路按照提示操作即可完成安装。 安装完成后,打开终端,输入go,检测Golang SDK是否安装成功,如下显示,则表示安装成功: 你也可以输入go version 查看你所安装的Golang的版本 二、环境变量配置(GOPATH) GOPATH是用来告诉Golang命令和其他相关工具,在哪里可以找到你系统上的Go包目录...阅读全文

博文 2015-09-12 23:00:00 showhilllee

Atom插件

[初音未来][atom-miku] 快捷键 ctrl-alt-k markdown 快捷键 ctrl-shift-m markdown-preview:编辑实时预览插件,Atom 官方出品 language-markdown:提供 Github Flavored Markdown 等 MD 高亮支持 markdown-writer:方便管理图片、链接等 markdown-scroll-sync:将 markdown-preview 的编辑区和预览区同步滚动 markdown-table-formatter:格式化表格 打造atom成为golang开发神器 Golang 环境配置建议(Atom...阅读全文

博文 2017-09-29 23:34:53 丶沙工

golang之flag简单使用方法

golang之flag简单使用方法package main import ( "flag" "fmt" ) func main() { //flag简单使用方法 backup_dir := flag.String("b", "/home/default_dir", "backup path") debug_mode := flag.Bool("d", false, "debug mode") flag.Parse() fmt.Println("backup_dir: ",*backup_dir) fmt.Println("debug_mode: ",*debug_mode) ...阅读全文

博文 2016-10-09 11:00:01 e421083458

go1.5 动态密码,最简单的实现使用hmac加密

package main import ( "crypto/hmac" "crypto/sha512" "fmt" "strconv" "time" ) type Key struct { gkey string skey string date func() int64 } const ( Gkey = "What" ) func main() { K := &Key{gkey: Gkey, date: getdate} b := hmac.New(sha512.New, []byte(K.Hmac("Hello World"))) B := b.Sum(nil) offset := B[len(B)-1] & 0xf x := ((int(B[offset+1]) & 0xff) << ...阅读全文

博文 2016-04-06 00:00:00 fyxichen

ReactiveX 的 Golang 实现GoRx

ReactiveX的Golang实现版本,非官方实现版。 由于官方的RxGo一直没有进行开发,遂本人在编写rx4rx的时候受到启发,实现了golang版本的Rx库,填补了Rx在golang上的空缺。 该库实现了两种使用模式1、链式编程,2、pipe模式。使用者可以根据自己的喜好随意选择。 类似 rxjs 5.0 类似 rxjs 6....阅读全文

开源项目 2018-09-17 10:30:03 网友