当前位置: 萬仟网 > IT编程>脚本编程>Go语言 > goweb-安装go及配置go

goweb-安装go及配置go

2020年01月14日 15:01  | 萬仟网IT编程  | 我要评论

安装go及配置go

安装go

写这篇博客时,我的电脑的windows已经安装过了go,用的是标准包安装,不过我的linux操作系统还没安装,可以考虑用第三方工具安装,因为看了goweb这本书,我才知道安装go有三种方式。这本书对三种操作系统的安装方式都有介绍

  • go源码安装:这是一种标准的软件安装方式。对于经常使用unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。
  • go标准包安装:go提供了方便的安装包,支持windows、linux、mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。推荐这种方式
  • 第三方工具安装:目前有很多方便的第三方软件包工具,例如ubuntu的apt-get和wget、mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。
    如果你想在同一个系统中安装多个版本的go,你可以参考第三方工具gvm,这是目前在这方面做得最好的工具,除非你知道怎么处理。

windows系统用户按win+r运行cmd,输入systeminfo后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显示“x64-based pc”,即为64位系统;若显示“x86-based pc”,则为32位系统。

苹果的我没细看,因为我没苹果的,o(∩_∩)o哈哈~

这有教如何在linux上配置环境变量,真好!,安装的是gvm第三方工具。早知道第三方这吗好,我当时就在windows上安装第三方工具了,不过其实页无所谓了,这并不影响我在windows上使用go

export goroot=/usr/local/go
export gobin=$goroot/bin
export path=$path:$gobin
export gopath=$home/gopath (可选设置)

go的特点

go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:

  • 它可以在一台计算机上用几秒钟的时间编译一个大型的go程序。
  • go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分c风格include文件与库的开头。
  • go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。
  • go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。
  • 按照其设计,go打算为多核机器上系统软件的构造提供一种方法。

go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此go也就应运而生了。

go 命令依赖一个重要的环境变量:$gopath

gopath允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候windows是分号,linux系统是冒号,当有多个gopath时,默认会将go get的内容放在第一个目录下。

gopath

以上 $gopath 目录约定有三个子目录:

  • src 存放源代码(比如:.go .c .h .s等)
  • pkg 编译后生成的文件(比如:.a)
  • bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $path 变量中,如果有多个gopath,那么使用${gopath//://bin:}/bin添加所有的bin目录)

注意:一般建议package的名称和目录名保持一致

这讲了一个如何安装和编译go应用,我以前没见过这一点,他这自己写了一个包,有安装这个包,又掉这个包,这和在一个文件夹里写入这个包在在该文件夹里引用这包不一样的嘛,有点不理解这吗做的意义。

工具和插件

实用工具:获取远程包:go get github.com/astaxie/beedbgo get本质上可以理解为首先第一步是通过源码工具clone代码到src下面,然后执行go install,在代码中如何使用远程包,很简单的就是和使用本地包一样,只要在开头import相应的路径就可以import "github.com/astaxie/beedb"到这对前面的做法好像有点懂了
go get -u 参数可以自动更新包,而且当go get的时候会自动获取该包依赖的其他第三方包

bin目录下面存的是编译之后可执行的文件,pkg下面存放的是应用包,src下面保存的是应用源代码

go的相关工具真的好厉害:

go test
go build
go install 
go clean
go fmt
go get
go tool
go generate
godoc
go version 查看go当前的版本
go env 查看当前go的环境变量
go list 列出当前全部安装的package
go run 编译并运行go程序

一种看官方文档方法:过命令在命令行执行 godoc -http=:端口号 比如godoc -http=:8080。然后在浏览器中打开127.0.0.1:8080,你将会看到一个golang.org的本地copy版本,通过它你可以查询pkg文档等其它内容。如果你设置了gopath,在pkg分类下,不但会列出标准包的文档,还会列出你本地gopath中所有项目的相关文档,这对于经常被墙的用户来说是一个不错的选择。

编辑器:我的电脑上有vscode,sublime,atom和liteide,我一般vscode,嘻嘻嘻,这本书对每款编辑器的相关插件做了简单介绍。

我服了,go语言好多好用的插件安装不上,气!

这一章中主要介绍了如何安装go,go可以通过三种方式安装:源码安装、标准包安装、第三方工具安装,安装之后我们需要配置我们的开发环境,然后介绍了如何配置本地的$gopath,通过设置$gopath之后读者就可以创建项目,接着介绍了如何来进行项目编译、应用安装等问题,这些需要用到很多go命令,所以接着就介绍了一些go的常用命令工具,包括编译、安装、格式化、测试等命令,最后介绍了go的开发工具,目前有很多go的开发工具:liteide、sublime、vscode、atom、goland、vim、emacs、eclipse、idea等工具,读者可以根据自己熟悉的工具进行配置,希望能够通过方便的工具快速的开发go应用。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • goweb- 国际化和本地化

    国际化和本地化 为了适应经济的全球一体化,作为开发者,我们需要开发出支持多国语言、国际化的Web应用,即同样的页面在不同的语言环境下需要显示不同的效... [阅读全文]
  • goweb-错误处理,调试和测试

    错误处理,调试和测试 我们经常会看到很多程序员大部分的"编程"时间都花费在检查bug和修复bug上。无论你是在编写修改代码还是重构系统,几乎都是花费... [阅读全文]
  • Golang 热编译rizla 插件

    今天在写gin接口的时候,每次添加或修改个接口都需要重启项目才能测试,感觉很麻烦。 因为beego有bee工具,bee run启动项目fsnotif... [阅读全文]
  • goweb-处理静态资源

    处理静态文件 对于 HTML 页面中的 css 以及 js 等静态文件,需要使用使用 net/http 包下的以下 方法来处理 1) StripPr... [阅读全文]
  • go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    go微服务框架kratos学习笔记六(kratos 服务发现 discovery) [toc] 除了上次的warden直连方式外,kratos有另一... [阅读全文]
  • goweb-安装go及配置go

    安装go及配置go 安装go 写这篇博客时,我的电脑的windows已经安装过了go,用的是标准包安装,不过我的linux操作系统还没安装,可以考虑... [阅读全文]
  • goweb-go语言基础

    go语言基础 虽然这本书是讲goweb,但还是吧go语言基础过了一遍,由于我之前已经对go语言基础做了一遍系统的学习,这里就当简单回顾一下,不再写过... [阅读全文]
  • goweb-goweb基础

    goweb DNS工作原理 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用... [阅读全文]
  • goweb-表单

    表单 简单的处理一个登陆界面 request.Form是一个url.Values类型,里面存储的是对应的类似key=value的信息,下面展示了可以... [阅读全文]
  • goweb-访问数据库

    访问数据库 对许多Web应用程序而言,数据库都是其核心所在。数据库几乎可以用来存储你想查询和修改的任何信息,比如用户信息、产品目录或者新闻列表等。 ... [阅读全文]

◎已有 0 人评论

Copyright © 2020  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com