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 梦朝思夕

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中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

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

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...阅读全文

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)...阅读全文

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 徐学良

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

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

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

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

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

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

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

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

如何使用 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

Golang使用工具

go get -u -v github.com/nsf/gocodego get -u -v github.com/rogpeppe/godefgo get -u -v github.com/golang/lint/golintgo get -u -v github.com/lukehoban/go-find-referencesgo get -u -v github.com/lukehoban/go-outlinego get -u -v sourcegraph.com/sqs/goreturnsgo get -u -v golang.org/x/tools/cmd/gorenamego get -u -v github.com/tpng/gopkgs go get -u -v githu...阅读全文

博文 2016-04-10 11:00:12 northldk

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 亓斌哥哥

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

Go语言实现Fibonacci数列的两个算法(使用递归和不使用递归)

Fibonacci数列:1,1,2,3,5,8,13,21,,, (即从第三项起,每一项的值都等于前两项之后) 第一种,使用递归: func fibonacci(a int) int { if a == 1 || a == 2 { return 1 } return fibonacci(a-1) + fibonacci(a-2) } 第二种,不使用递归: func fibonacci_version2(index int) int { if index == 1 || index == 2 { return 1 } a, b := 1, 1 for i := 3; i <= index; i++ { a, b = b, (a + b) } return a + b } 经过检验,使用非递归算...阅读全文

博文 2015-06-17 23:02:39 books1958

Go语言Mysql简单使用.

查询: package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "time" ) func main() { con, _ := sql.Open("mysql", "root:123456@tcp(localhost:3316)/mysql") defer con.Close() go query(con) time.Sleep(1e9) } func query(con *sql.DB) { Q, _ := con.Prepare("select user,host,password from user where user = ? and host = ?") defer Q.Close...阅读全文

博文 2015-06-17 23:06:59 fyxichen

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