技术标签: GoLand安装配置 Go go安装配置
作为一个go语言程序员,觉得自己有义务为go新手开一条更简单便捷的上手之路。纵使网上教程很多,但总不尽人意。go的入门门槛还是非常低的,无论是安装还是使用。
go 语言支持以下系统:
Linux
Mac OS X(也称为 Darwin)
Window
FreeBSD
本文将介绍mac下的安装和使用教程
安装包下载地址(下面3个都可以):
https://studygolang.com/dl
https://golang.google.cn/dl/
https://golang.org/dl/
步骤:
- 打开安装包下载页面
.
- 选择go1.10.2.darwin-amd64.tar.gz,单击连接就开始下载到本机了。这里选择的稳定(stable)版本是1.10.2,当然你也可以选择其他的版本进行下载。
(图片中,我们选择的是tar压缩包,它的上一个是源码包,下一个是pkg包。pkg包安装简单,只需双击+一路next即可,安装路径默认是/usr/local/go/)
.
- 找到本机下载好的压缩包,可通过在下载页面下方直接找到。
.
- 打开终端,进入压缩包所在目录,将压缩包解压到/usr/local目录
cd 安装包所在目录
tar -C /usr/local -xzf go1.10.2.darwin-amd64.tar.gz
- 配置GOROOT和PATH
配置:
//编辑~/.bash_profile文件
localhost:~ zxy$ vim ~/.bash_profile
//在~/.bash_profile文件中添加以下2条命令
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
//使配置生效
localhost:~ zxy$ sorce ~/.bash_profile
----------分割线--------------
说明:
1. GOROOT是GO的安装路径
2. 但要执行go命令和go工具,就必须将go的可执行文件/usr/local/go/bin添加到系统的PATH环境变量中。
这样,无论在终端的任何路径,都可识别go命令和go相关工具
3. 网上有很多在安装时就配置全局GoPath的,其实这是可选的。网上的很多文章又解释得不清楚,
往往使初学者蒙圈。笔者建议初学者安装时可以不用配,用不好可能出问题。且后面使用开发工具时,
这个全局gopath基本用不到,算是个多余的存在,有时还增加代码排错障碍。
- 测试,在终端输入go version,出现以下提示则安装成功
localhost:~ zxy$ go version
go version go1.8.5 darwin/amd64
至此安装结束。
安装成功后,让我们写个hello world感受一下吧。
//打开终端,随便cd到一个目录,比如我cd到我的xy目录
localhost:xy zxy$ vim hello.go
//编辑hello.go文件
package main
import "fmt"
func main(){
fmt.Println("hello world")
}
//通过:wq保存文件并退出。运行文件
localhost:xy zxy$ go run hello.go
hello world
在实际的项目开发中,我们期待有个类似eclipse或者IDEA(java开发工具)那样的开发工具,助力程序员快速开发。下面给大家介绍Go的一款开发工具GoLand,非常好用,是IDEA全家桶中的一员。
- 打开官网
https://www.jetbrains.com/go/
单机进入
下载后找到安装包,双击+一路next即可安装成功
安装成功后,双击打开软件
进来后,会让你选择打开一个本地项目,或者新建一个项目。我们新建一个
进来后需要填写一下信息,完毕后点击“create”即创建了一个新项目
创建成功后的界面。单机坐下角的”Terminnal”可以打开终端,直接操作。单机”TODO”可以查看代码中所有被标注为//todo(TODO)的地方。
配置GOPATH
,这一步非常重要,否则代码中的依赖包将无法识别。一般GOPATH都配置到项目名这一层
现在的项目是空的,让我们来写个hello吧
在项目hello文件夹下,我新建了一个src文件夹,这是go的默认用法。一般都将项目代码放在src文件夹下。代码中所有引用的第三方包路径,前缀都默认是"项目名/src/
第三方包路径”。
如main.go中引用第三方包:import “golang.org/x/net/websocket”,那么该包必须位于“hello/src/”文件夹下,否则将找不到该依赖包而编译出错。
.
当然,你也可以通过下面的方式运行程序:
从终端cd到package main文件所在的文件文件夹,如这里是src。go build编译后生成一个可执行文件,文件名就是相应的xx.go文件的文件名xx,如这里是main。然后直接./xx运行即可。如果不想编译,也可以在终端直接go run main.go运行
.
如果你用终端go run/build的方式运行程序,可能你会收到类似下面的错误
这种错误一般都是由于本终端窗口的GOPATH没有配置正确,可以通过“export GOPATH=你的gopath路径”的方式配置。需要注意的是,在本终端窗口通过这个方式配置只对本窗口有效,关闭或新建窗口需要重新配置。
造成这个错误的原因可能有:
· 本窗口GOPATH没有配置或配置错误
· 本窗口不配置时,如果本机(电脑)通过配置文件的方式配置的全局GOPATH,本窗口会去读取全局gopath。而全局gopath并不适用本项目,故而报错。所以前面安装go时就建议初学者不要配置全局gopath。
· 关闭GoLand或者重启电脑,也可能导致之前配置的GOPATH失效。
补充一句:go的依赖包识别是通过查找gopath下是否存在响应依赖包。
.
如果想打开另一个项目
至此,GoLand安装及使用教程结束。
补充:
1. GoLand开发工具时收费的,免费试用1个月,到期后可以尝试卸载再重装。
2. 目前该工具没有特别好的破解教程。毕竟使用GO的人目前还是相对较少的,期待破解大神出现。
欢迎来到go世界。。。
文章浏览阅读439次,点赞5次,收藏12次。树莓派的3D模型在STEP格式。SolidWorks、AutoCAD,fusion360可用。_树莓派step
文章浏览阅读1.6w次,点赞9次,收藏11次。前言:在前面的文章中,我们介绍了如何对Glide进行默认配置的基础知识,现在我们就来介绍如何配置自定义缓存1.如何使用GlideModule首先我们要对Glide进行默认配置,需要了解如何使用GlideModule,前面文章已经做了详细介绍了,这边就不再介绍了如何使用GlideModulehttp://blog.csdn.net/yulyu/article/details/55194237前面还介绍_glide自定义缓存图片名
文章浏览阅读3.2k次。一:交换机的原理机制信号转发的网络设备,介入交换机的任意两个节点共享信号通路,工作与OSI的数据链路层,同事可以进行多个端口的数据传输,交换机上电后会自动创建一个端口地址表,叫做MAC地址表,,会记录mac地址和哪个端口连接,然后自动学习,每次进到交换机的信息,都会记录下穿送过来的设备地址的mac地址,过程就是,学习mac地址,广播mac地址,查找mac地址,配对mac地址。二:switc..._stmmac适配switch芯片
文章浏览阅读2.7w次,点赞7次,收藏23次。我参加的是华为2017年(针对18年毕业的应届生)武长地区的华为优招,面试之前也在网上搜了很长时间的关于优招的面试经验贴,没有搜到多少相关的资料。所以写下这篇帖子,希望能够帮到后续参加华为优招的同学。 先说下我参加华为勇敢星实习招聘的经历吧(因为过了实习可以省很多事情): 华为发出招聘勇敢星实习计划后,在官网注册简历,投递简历。这里要说明一下,找人内推没什么用,至今也没听说谁需要找华为的员工内推_华为勇敢星实习生面试
文章浏览阅读206次。(四)嵌入式 Linux驱动程序设计之杂项设备驱动接上篇:(三)嵌入式 Linux驱动程序设计之驱动编译进内核linux三大设备驱动字符设备:IO的传输过程是以字符为单位的,没有缓冲,如:I2C,SPI;块设备:IO传输过程以块为单位,根存储相关的都是块设备,如:tf卡,EMMC;网络设备:以套接字来访问的.1.杂项设备驱动属于字符设备,杂项设备可以自动生成设备节点.我们系统里有很多杂项设备,开发板可以使用cat /proc/misc/查看;虚拟机在/dev/下;2.杂项设备除了比字符设备代_qemu misc
文章浏览阅读561次。Problem DescriptionProfessor Zhang would like to solve the multiple pattern matching problem, but he only has only one pattern string p=p1p2...pm. So, he wants to generate as many as possible pattern s_5745la vie en rose
文章浏览阅读4.9k次,点赞10次,收藏66次。学习内容本文主要介绍关于ZYNQ芯片的串口中断功能,并编写相关测试代码开发环境vivado 18.3&SDK,PYNQ-Z2开发板。UART控制器简介UART控制器是一个全双工异步接收和发送,支持可编程波特率和I/O信号格式。 该控制器可实现奇偶校验自动生成和多主检测模式。UART操作由配置和模式寄存器控制。FIFO、调制解调器信号和其他控制器功能的状态是使用状态、中断状态和调制解调器状态寄存器读取的。UART控制器有独立的RX和TX数据路径。每个路径包括一个64字节的FIFO。 控制_zynq 串口中断
文章浏览阅读2.6k次。开发十年,就只剩下这套Java开发体系了>>> ..._libopenjp2
文章浏览阅读1.4w次,点赞9次,收藏36次。最近项目遇到个问题,就是利用swagger下载excel时,得到的文件打开总是乱码,首先怀疑是response的content-type有问题,将application试遍了,“x-msdownload”,“vnd.ms-excel”,“vnd.openxmlformats-officedocument.spreadsheetml.sheet”,“octet-stream”这些试了都不行,具体的类...
文章浏览阅读3.5w次,点赞8次,收藏62次。Linux 安装telnet_linux telnet安装
文章浏览阅读1.5k次,点赞3次,收藏3次。1. 定义:在C语言中和C++中定义是不同的。相关代码如下:#undef NULL#if defined(__cplusplus)#define NULL 0#else#define NULL ((void *)0)#endif为什么在C中和C++中的定义是不一样的呢?原因如下:在C语言中,看定义就好理解,直接定义为空指针。(此处也得声明一下,本质上0并非是空的含义,只是这样定义在解引用的时候相当于是访问0x00000000地址,而对于一般而言,0地址通常是不可访问的___null
文章浏览阅读3.5k次,点赞2次,收藏27次。android实现百度离线地图+gps定位关于效果图第一步,添加百度地图jar包及引用第二步,下载离线地图功能第三步,GPS定位+地图展示关于 这段时间,因为公司项目需求,要在内网下实现地图展示及个人定位上报功能,一开始接到这个需求比较懵逼也以为实现起来很简单,结果…我以为的离线地图和实际的百度提供的离线地图功能相差甚远。一开始是想着将离线地图通过后台copy至接口或者资源复制,但是因为种种原因离线地图没显示出来,现在想来应该是地图加载页面写的有问题或者就是缓存问题,这个等有时间研究下吧,项目太着急,_这段时间,因为公司项目需求,要在内网下实现地图展示及个人定位上报功能,一开始接