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

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

个人犯的一个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这一专业的移动客服管理平台。 我们这时候才发现,专业的客户服...阅读全文

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 小风吹的我乱了

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

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 网友

golang学习的点点滴滴:map使用

package main import "fmt" type Person struct { ID string Name string Addr string } func main() { var persons map[string] Person = make(map[string] Person) persons["123"] = Person {"123", "heihei", "haha"} p, ok := persons["123"] if ok { fmt.Println(p.Name) } fmt.Println("----") p2 := map[string] Person { "111" : Person {"111", "11111", "2222"}, } p...阅读全文

博文 2014-10-04 19:27:06 亓斌哥哥

Go内存优化(一)— struct

理 关于Golang同一struct中field的书写顺序不同内存分配大小也会不同。主要原因如下:struct内field内存分配是以4B为基础,超过4B时必须独占。 示例 type A1 struct { a bool b uint32 c bool d uint32 e uint8 f uint32 g uint8 } 计算一下A1所需要占用的内存: 首先第1个4B中放入a,a是bool型,占用1B,剩余3B 这时看b是uint32,占用4B,剩余3B放不下,所以offset到下一个4B空间,这时我们会发现3B没有放东西,被浪费了 依次往下,A1要占用28B的空间 根据1,2两个步骤很容易看出,有很多浪费空间。 优化: type A2 struct { a bool c bool e u...阅读全文

博文 2018-06-29 15:34:44 sipt

如何使用 go get 下载 gitlab 私有项目

据此 issue ,gitlab 7.8 就开始支持 go get private repo。 假设 gitlab 服务是: mygitlab.com 使用方式:http://www.zhuangxiuzhishi.com/e/space/?userid=212379?feed_filter=/XQ/2016/09/20/1983.html http://www.51xiaoba.com/e/space/?userid=1403190?feed_filter=/PN/2016/09/20/6831.html http://www.dingfengnet.com/e/space/?userid=1157469?feed_filter=/HU/2016/09/20/2481.html http:...阅读全文

博文 2016-09-20 17:00:02 lintingte