Go语言入门——Go语言环境搭建

  下载Go语言包

  go binary release是一套 二进制+源码+SDK+工具组成的,和其他语言比,唯独没有运行时,也不需要。Go官方国内访问不稳定,最好FQ。请到https://golang.org/dl/ 下载对应的包,目前是1.9.3版本

  三个环境变量

  首先你要了解对应操作系统的环境变量怎么配置,以及影响的范围,篇幅有限不赘述。假设你的go安装路径为 /root/app/go下,首先要确保PATH变量中有/root/app/go/bin。之后配置GOROOT为/root/app/go/即你的go安装目录

  最后一项是GOPATH,这个很重要很多人被坑在这。go和其他语言不一样十分依赖于工作目录,即GOPATH。比如我建立了三个目录, golib, gowork, gotest(虽然官方建议 “Go programmers typically keep all their Go code in a single workspace.”)

  

  之后在环境变量中把GOPATH配为这三个目录,并且把golib放在第一个。这三个目录中的又要分别有bin, pkg, src 三个文件夹,这才算一个标准的工作目录,一张官网的截图作为参照:

  go的这种模式决定了你不能按照版本控制工具来作为代码的根目录,也不能随意的将某一个测试项目建立到随意的路径下,而必须都在GOPATH包含的路径中,src目录下

  最后,如果是linux系统别忘了export GOPATH和GOROOT

  测试

  首先执行以下 go version,确保输出“go version 1.9.3xxxxx”的字样。然后在你的某个src下创建一个helloword文件夹,我们假设这个目录为 /root/app/gowork/src,在里面创建一个application.go的文件,把以下代码复制过去:

package mainimport "fmt"func main() {fmt.Printf("Hello, world.\n")
}

  这段代码将在标准输出打印 Hello, world。第一个行是固定写法,每个要最终发布为二进制可执行程序的都要这么写,import 不用多说了,fmt.Printf就是我们最常用的标准输出函数。现在思考一下哪里和Java不一样?fmt是模块名或者说包名,你现在在通过包名直接调用包内部的方法,这里不涉及到“类”!

  在/root/app/gowork/src/helloworld 下执行 go run application.go 试试?如果能打印hello world. 则你成功了

  IDE

  我们都有intellij idea,可以在上面安装GO语言的插件,但至少在我还在用go 1.6的那时,就有很多问题,不知道现在是否修正了。我向大家推荐同样是Jetbrains的GoLand,界面风格和intellij idea完全一样

  从 https://www.jetbrains.com/go/?fromMenu下载安装文件,GoLand需要购买key,当然,你可以百度一下...

  安装好后可能需要你设置一下SDK路径,选在你go的安装路径就好。在settings选项中,你能看到go的各项配置,你甚至可以添加一个只给GoLand用的GOPATH,但我不建议这么做

  点File->Open,选择helloworld目录。你能看到他自动识别了main函数,有一个我们熟悉的小绿箭头,点击一下

  和刚才的结果一样。看一看最下面Run的打印的内容

执行的并不是刚才的go run,而是go build?并且生成了exe文件,最后用runnerw.exe执行了生成的exe。下一篇中我们会详细说go的几个重要命令

 

转载于:https://www.cnblogs.com/anti-archs/p/8398830.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图文详解并联机器人,你了解吗?

文章来源:世界先进制造技术论坛内容来源:网络本期编辑:小艾 发展历程国外1931年,Gwinnett在其专利中提出了一种基于球面并联机构的娱乐装置;并联娱乐装置1940年,Pollard在其专利中提出了一种空间工业并联机…

c++求n次方_课时9一元二次方程及其应用

基础过关1.(2019徐州)方程x2=4的解为(  )A. x1=x2=2 B. x1=2,x2=-2C. x1=x2=-2 D. x1=2,x2=02.(2019兰州…

linux nfs命令,linux命令:NFS服务

NFS服务器端:nfs-utilsnfs服务器启动的进程: nfsd(nfs服务主进程),mountd(挂载进程),quotod(磁盘配额进程)nfsd端口:2049/tcp, 2049/udp让mountd和quotod等进程监控在固定端口,编辑配置文件:/etc/sysconfig…

图神经网络快速爆发,最新进展都在这里了

来源:AI科技大本营近年来,图神经网络(GNNs)发展迅速,最近的会议上发表了大量相关的研究论文。本文作者正在整理一个GNN的简短介绍和最新研究报告的摘要。希望这对任何准备进入该领域或试图赶上最新技术进展的人有所帮助…

zabbix编译安装

zabbix软件下载地址 安装zabbix所需要的LNMP环境可参考这篇文章 ,本文重点讲解编译安装zabbix部分。 一:安装zabbix server端 1. 安装zabbix所需依赖的软件包 yum install -y net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel 2.编译安…

linux日志添加到文件,关于linux:将变量中的内容追加到日志文件中

我有一个脚本,并尝试将我的变量中的内容附加到.log文件。 我在另一篇文章中看到了(如何通过命令行将变量文本附加到文件的最后一行?),你可以使用echo"$(cat $ FILE)$ APPEND"> $ FILE来完成。 我尝试这样做,它能够无…

为什么linux远程一进入sudo su就卡住_Linux 实战(上)

什么是LinuxLinux有两种含义:一种是 Linus 编写的开源操作系统的内核另一种是广义的操作系统服务器端通常强调稳定性,不需要像客户端那样华丽的图形界面。2. Linux 内核版本和常见发行版内核版本:https://www.kernel.org/内核版本分 主版本号…

JavaScript中的运算符和语句

一、JavaScript的运算符 a、基本的算术运算符(、-、*、/、%) -、*、/、%运算符会在必要的时候将操作数转换为数字,无法转换成数字的操作数将会转换成NaN,相应的运算结果也是NaN。 JavaScript中所有的数都是浮点型的,所以除法的运算…

linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...

很多刚接触Linux的人都有四大疑问:使用Linux非常困难、在Linux中,您必须使用命令行、Linux很老又丑陋、Linux无法运行计算机游戏,本文为您解析,打消您对Linux的误解。前言对于许多人来说,Linux是一个可怕的操作系统&am…

深度学习未来的三种范式

来源:AI前线作者:Andre Ye译者:平川策划:陈思深度学习是一个广阔的领域,它围绕着一种形态由数百万甚至数十亿个变量决定并不断变化的算法——神经网络。似乎每隔一天就有大量的新方法和新技术被提出来。不过&#xff0…

python中使用什么导入模块-python—模块导入和类

1.查询模块:按目录依次查找需要导入的模块,模块目录一般在:/usr/lib64/python2.7 In [2]: sys.path Out[2]: ["", "/usr/bin", "/usr/lib64/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg&qu…

linux du 文件大小排序,du命令 实现Linux 某个文件夹下的文件按大小排序

1. df -lh2. du -s /usr/* | sort -rn这是按字节排序3. du -sh /usr/* | sort -rn这是按兆(M)来排序4.选出排在前面的10个du -s /usr/* | sort -rn | head5.选出排在后面的10个du -s /usr/* | sort -rn | taildu -h –-max-depth0 userdu -sh –-max-depth2 | more本文具体介绍…

Nature重磅:软硬分离、图灵完备,清华首次提出“类脑计算完备性”

来源 | 清华大学计算机系校友会北京时间10月14日,清华大学计算机科学与技术系(以下简称“计算机系”)张悠慧团队、精密仪器系(以下简称“精仪系”)施路平团队与合作者在《Nature》杂志发文,首次提出“类脑计…

Linux sublime设置中文,CentOS 8.1下Sublime Text 3设置中文与Python环境

Sublime Text是一个跨平台的源代码编辑器,设计简单,速度快,支持许多编程语言和标记语言,你可以使用数千个可用于安装的插件,在RHEL 8/CentOS 8上的Sublime Text 3上解锁更多功能,本文假设你已在CentOS/RHEL…

java 正则首位8或者9的8位数字_从零开始学Python - 第025课:正则表达式的应用

正则表达式相关知识在编写处理字符串的程时,经常会遇到在一段文本中查找符合某些规则的字符串的需求,正则表达式就是用于描述这些规则的工具,换句话说,我们可以使用正则表达式来定义字符串的匹配模式,即如何检查一个字…

c# 后台 添加datable 数据

public void AddRows(HtmlTable table(表名),DataTable dt(数据源), string i(自增长)){int j int.Parse(i);HtmlTableRow tr0 new HtmlTableRow();HtmlTableCell tc new HtmlTableCell();tc.Attributes…

蝴蝶扇了一下翅膀,混沌就诞生了

科学无国界我们是知识的搬运工认真阅读下面的文章,并思考文末互动提出的问题,严格按照 互动:你的答案 格式在评论区留言,就有机会获得由四川人民出版社提供的优质科普书籍《未来科学简史》一本。我们耳熟能详的“蝴蝶效应”&#…

前端八股文(js篇 )

目录 一.防抖,节流是什么,如何实现? 二.介绍下Set,Map,WeakSet和WeakMap的区别 三.setTimeout,Promise,Async/Await的区别 四.简述同步和异步的区别 五.怎么添加,移除,复制,创建…

linux定时器错误使用,linux下定时器的使用

Linux下定时器的使用主要用到两个函数:setitimer()和getitimer();注意:setitimer()一个进程中只能有一个,下一个会覆盖前一个的定时。Linux系统给每个进程提供了3个定时器,每个定时器在各自不同的域里面计数,当任何一个…

native.loadlibrary获取路径不对_【Python专题(三)】Python模块导入与路径管理

​前言Python项目的路径管理是一个让人头疼的问题。在写python项目的时候,明明 import了文件A,代码运行时却收到 ModuleNotFoundError,仔细一看,是引用路径不对,很是气人。又或者,当项目中出现了重名的pack…