go语言笔记

了解docker就不得不学习一下go语言了。尤其是接口一类的,感觉不是很方便。一点点更新自己的理解吧。 go语言中的package。 在java中直接是类的感念,import也是直接对类生效的。但是在go语言中目录和包都会有相应的使用。 目录: import的就是导入的目录。 packege:一个目录下可以有多个go文件,但是只能有一个目录。 另外,系统默认的package是有指定路径的。@GOPATH/src,导入的包都是从这个路径开始的。看源码的时候还是要注意点的,不然编译器都识别不出来 i...阅读全文

CSDN博客 2016-09-19 22:13 u011426341

Golang如何引用Github上的开源项目

for example: 以上图中地址为例,亲测好用,前提是配好go的环境变量,包括GOROOT和GOPATH。步骤如下: windows+R 打开cmd,输入go get github.com/vmihailenco/redis ,回车之后会自动下载项目到GOPATH中的src目录下。 下图为我的GOPATH路径: 命令行进入到当前目录,cd E:\gopath\src\github.com\vmihailenco \redis , 然后 go build 编译,go install 安装。 ...阅读全文

CSDN博客 2016-09-14 10:40 sinat_28545681

go发送邮件

1.获取Go邮件库(自带发送不了) go get gopkg.in/gomail.v1 2.包含库 import ( "gopkg.in/gomail.v1" ) 3.例子 //info.From:发件地址或账号 //to: 收件地址 //body:邮件内容 //port:邮件服务器端口 //info.Host:邮件服务器地址 //info.Password:密码 func GoMail(to, body string) error { info, err := MailInfoGet() if...阅读全文

CSDN博客 2016-07-14 21:54 idwtwt

Golang 1.0 文档使用。godoc ,go 命令 学习 ,本地运行 gotour

首先要安装环境 参考: http://toeo.iteye.com/blog/1470598 找了半天 没有 看明白 doc 的目录结构。 原来 doc 是web 展示的 !!! 本地 运行 web 版本 doc文档 输入 > godoc -http=:6060 然后在浏览器里面就可以看到了: 访问你的浏览器年 就有自己的一个 本地 文档中心了。 google go 毫不吝啬。golang.org 上面的文档相关东西都 本地化了。直接在web里面运行go程序的没有 本地化。必需通过web访问。(...阅读全文

CSDN博客 2016-09-19 20:25 txj236

windows安装go-sqlite3失败,提示找不到gcc

windows安装go-sqlite3失败,提示找不到gcc go get github.com/mattn/go-sqlite3时失败,提示exec: “gcc”: executable file not found in %PATH%,是因为没有安装gcc。 去http://tdm-gcc.tdragon.net/download下载一个,32位windows下载 tdm-gcc-4.8.1-3.exe,64位下载 tdm64-gcc-4.8.1-3.exe 注:为保证能够成功编译,建议安装...阅读全文

CSDN博客 2016-09-09 16:40 u013474104

《The.Go.Programming.Language.2015.11》之Goroutines

并行处理图片并等待全部图片处理结束 限定并发数量 复用select 互斥锁 syncOnce 解决方法一使用互斥锁 解决方法二 使用读写锁 解决方法三 使用syncOnce 并行处理图片并等待全部图片处理结束 func makeThumbnails6(filenames <-chan string) int64 { sizes := make(chan int64) var wg sync.WaitGroup // number of working goroutines for f := ra...阅读全文

CSDN博客 2016-09-19 09:00 KingEasternSun

《一个 Go 程序系统线程暴涨的问题》结论

原文地址:https://zhuanlan.zhihu.com/p/22474724 作者的结论没写好,我来说两句。。 结论: Docker swarm自己有个函数,叫setTcpUserTimeout,这个函数调用了conn.File()方法,将tcp的fd变成了blocking,而且没有关闭对应的fd。相当于每次设定tcpUserTimeout参数,再去read一下fd,都会产生一个新的线程。因为老的线程在读fd,而fd被设置成blocking了,于是golang的运行时只好再开一个新的。 ...阅读全文

博客园 2016-09-18 20:39 Lifehacker

go开发和运行环境的配置

1.运行环境的下载、安装、配置: 下载:http://www.golangtc.com/download 官网下载经常被墙屏蔽,所以就从golang中国下载; 安装及其配置:http://jingyan.baidu.com/article/3c48dd3492fc1ee10be358d7.html 2.IDE:Sublime text3 安装及其使用 3.版本控制工具Git:主要是方便访问github的项目,百度搜索"win git安装使用"即可。 4.在sublime中安装:(这些工具只是方便...阅读全文

博客园 2016-09-18 22:21 cz-blog

基于 Web 的 Go 语言 IDE - Wide 1.5.1 发布!

Wide 是一个基于 Web 的 Go 语言 IDE, 其目标不是彻底代替本地 IDE,而是做本地 IDE 很难做到的事情: 分享代码:类似 playground,但支持多文件并提供嵌入方式,在其他网站(比如技术社区帖子)展现、运行代码 团队协同:比如标记代码 issue 并通知、编辑状态显示,这个特性很类似一些即时战略游戏中的玩家协作,这里是特性设计:英雄模式 随时随地:不用装环境(或者说不用经常升级吧),能联网就能开发。当然,也可以本地跑 Wide 支持移动设备,即使不支持开发(或者是支持的...阅读全文

CSDN博客 2016-08-31 10:42 DL88250

Go官方库RPC开发指南

Go官方提供了一个RPC库: net/rpc。包rpc提供了通过网络访问一个对象的方法的能力。服务器需要注册对象, 通过对象的类型名暴露这个服务。注册后这个对象的输出方法就可以远程调用,这个库封装了底层传输的细节,包括序列化。服务器可以注册多个不同类型的对象,但是注册相同类型的多个对象的时候回出错。 我最近写了一本电子书: Go RPC开发指南,介绍Go RPC开发的相关技术,这是其中的一章,专门介绍官方库 net/rpc的使用。 同时,如果对象的方法要能远程访问,它们必须满足一定的条件,否则...阅读全文

鸟窝 2016-09-19 00:02 colobu

美图互联网技术沙龙 第2期:Golang应用实践

【沙龙报名】美图互联网技术沙龙 第2期:Golang应用实践 【沙龙报名】美图互联网技术沙龙 第2期:Golang应用实践 2016-07-15 MTC美图培训中心 美图互联网技术沙龙 美图互联网技术沙龙 是由美图公司主办的线下技术交流系列活动,每期沙龙都将会邀请到美图内外部技术大咖莅临现场围绕着最热门的技术话题与大家进行交流和分享,努力为中高级技术人员打造一个高质量的技术交流圈。 ◆ ◆ ◆ 第2期主题:Golang应用实践 主题介绍:在越来越多场景中得到应用的Golang,正顺应市场需求不断...阅读全文

CSDN博客 2016-07-20 07:51 screscent

golang语言中map的初始化及使用:代码示例

代码示例 // 先声明map var m1 map[string]string // 再使用make函数创建一个非nil的map,nil map不能赋值 m1 = make(map[string]string) // 最后给已声明的map赋值 m1["a"] = "aa" m1["b"] = "bb" // 直接创建 m2 := make(map[string]string) // 然后赋值 m2["a"] = "aa" m2["b"] = "bb" // 初始化 + 赋值一体化 m3 := m...阅读全文

CSDN博客 2016-09-18 02:17 xxx9001

Golang访问SQL Like数据库(三)——sql package + Postgres driver源码走读

github.com/lib/pq pg是一个纯Go写的Postgres数据库的driver。尼玛,作者给大家开了一个小小的玩笑,pq老是会习惯性的写成pg有没有…安装方式如下: go get github.com/lib/pq Register 如前所述,Driver需要调用sql.Register根据名字将driver实现的driver.Driver类型interface注册。pq driver的init函数在源码pq/conn.go文件中,init函数调用sql.Register将driv...阅读全文

CSDN博客 2016-08-08 02:50 xingwangc2014

golang 2 将会支持泛型

连续使用了半年多的golang,其语言特色不用多说,但个人总有那么几个点不爽: 开放的构造函数 不支持泛型 没有枚举 但就第二点,因为不支持泛型,所以每次从interface{}转换为具体类别的时候都存在开销,且很容易出问题。无意中在github看到了4月份的讨论,但还是感觉很爽!只是希望别拖到2018年。 红底黑字,大大的”Go2”,亮瞎双眼啊! 原文出处: 讨论:https://github.com/golang/go/issues/15292 设计描述:https://github.com...阅读全文

CSDN博客 2016-07-08 14:56 qq_26981997

go语言获取发送信号的进程pid

背景 今天在发布一个程序之前,给qa提测的时候,qa反馈程序运行10几分钟之后,退出了 排查过程 在程序中加日志,发现程序捕获到了一个SIGTERM信号,然后做了一些退出前的清理工作(在退出之前,该发送的数据还是需要发送的)。然后就需要知道到底是那个进程向我发送SIGTERM信号 代码 查了一下,貌似go语言没有直接的发送获取向自己发送信号的进程的pid,需要嵌入一段c语言代码,获取到pid之后,为了更直观的知道是那个可执行程序,可以去读取/proc/${pid}/exe这个软链 package...阅读全文

CSDN博客 2016-09-18 20:47 hs794502825

go语言学习道路1-学习前

确切的说从去年开始就知道go语言的存在,那个时候只是知道他这个名字的存在。具体感兴趣是今年的8月份跟一个同事的交流。于是开始进行学习,go语言可以说就是针对服务器开发的语言(暂时还没有看到google提供基于GUI开发方面的包,未来不排除会提供),具有余下的优势: 1:编译性的语言,这个相对于脚本性语言效率的优势 2:GC机制,这个又有了高级语言的优势,不用担心内存泄露。(GC机制是需要消耗资源的,所以这也是性能的瓶颈) 3:丰富的包资源和成熟的开源项目,这个可以在github上面查找。 4:协...阅读全文

CSDN博客 2016-09-05 17:08 tongdajiu

Golang访问SQL like数据库(二)——sql package主要数据结构及方法

接上一篇,sql package的主要实现是database/sql, sql 中比较重要的数据结构是: type DB type Row type Rows type Stmt Type Tx sql.Register sql.Register接口用于注册数据库驱动。第三方开发的数据库,需要在init中调用这个接口来完成本驱动的注册。 接口声明为: func Register(name string, driver driver.Driver) 如果Register被调用了两次注册相同name...阅读全文

CSDN博客 2016-08-08 02:46 xingwangc2014