设为首页 收藏本站
查看: 1269|回复: 0

[经验分享] go开发环境的搭建

[复制链接]

尚未签到

发表于 2018-9-21 08:11:27 | 显示全部楼层 |阅读模式
  

go get -u -v github.com/golang/lint/golint  go get -u -v sourcegraph.com/sqs/goreturns
  go get -u -v golang.org/x/tools/cmd/gorename
  go get -u -v github.com/newhook/go-symbols
  go get -u -v golang.org/x/tools/cmd/guru
  

  3. 调试工具delve安装
  a.打开网址:https://github.com/derekparker/delve/tree/master/Documentation/installation
  b.mac:   brew install go-delve/delve/delve
  c.linux&windows:  go get github.com/derekparker/delve/cmd/dlv
DSC0000.png

  每一个程序只能有一个main包,带有main()函数,不能重复定义。
  只有包名是package main、带有main()函数才是可执行文件,其他的都是库,编译后生成.a文件。
  

package main  
//包名
  
import(
"fmt"  
)
  

  
func main() {
  fmt.Println(
"hello world")  
}
  

  4、GOPATH工作区
  a.所有项目都需要放到GOPATH/src下面
  b.GOPATH路径最好只设置一个
  5、基本命令
  go test 执行单元测试或压力测试
  go env 显示go相关的环境变量
  go fmt 格式化源代码
  go run 快速执行go文件,就想执行脚本一样
  go build编译程序,生成二进制可执行额那件
  go install 安装可执行文件
  如果在环境变量中设置GOOS=linux,go build编译,编译文件放到linu平台上运行。
  
  三、golang语言特性
  1. 垃圾回收
  a、内存自动回收,再也不需要开发人员管理内存  //开发代码中不能存在无引用的变量,不然代码出错
  b、开发人员专注业务实现,降低了心智负担
  c、只需要new分配内存,不需要释放
  2. 天然并发
  a、从语言层面支持并发,非常简单
  b、goroute,轻量级线程,创建成千上万个goroute成为可能
  c、基于CSP(Communicating Sequential Process)模型实现(基于goroute、channel)
  并发实例:
  不需要担心编码问题,全是utf-8
  :=  相当于变量的声明和赋值
  在go名称中不建议使用下划线 _
  //单行注释
  /*   */多行注释
  gofmt -w filename   格式化代码文件(排版)

DSC0001.gif DSC0002.gif   

package main  

  
import(
"time"  
)
  

  
func main() {
  

for i := 0; i < 100; i++ {  go test_goroute(i)
//开启多线程  
    }
  

  time.Sleep(time.Second)
  
}
  


main.go
  

package main  

  
import(
"fmt"  
)
  

  
func test_goroute(a
int) {  fmt.Println(a)
  
}
  


goroute.go  3. channel(管道,进程间的通信)
  a、管道,类似unix/linux中的pipe
  b、多个goroute之间通过channel进行通信
  c、支持任何类型
  

func main() {  pipe :
= make(chan int,3)  //make  分配内存空间  pipe

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-599136-1-1.html 上篇帖子: Hyperledger Fabric安装问题备忘(一) 下篇帖子: ubuntu下安装go语言;sublime+gocode搭建;go的卸载和环境变量配个人.bashrc
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表