go 学习第一个hello world 遇到的问题
mac:Go安装和配置+GoLand安装和使用之完整教程
https://blog.csdn.net/zxy_666/article/details/80182688
前言
作为一个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
1
2
配置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基本用不到,算是个多余的存在,有时还增加代码排错障碍。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
测试,在终端输入go version,出现以下提示则安装成功
localhost:~ zxy$ go version
go version go1.8.5 darwin/amd64
1
2
至此安装结束。
安装成功后,让我们写个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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在实际的项目开发中,我们期待有个类似eclipse或者IDEA(java开发工具)那样的开发工具,助力程序员快速开发。下面给大家介绍Go的一款开发工具GoLand,非常好用,是IDEA全家桶中的一员。
GoLand安装与配置
打开官网 
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世界。。。
--------------------- 
作者:滢光点点 
来源:CSDN 
原文:https://blog.csdn.net/zxy_666/article/details/80182688 
版权声明:本文为博主原创文章,转载请附上博文链接!
1.main 函数所在的包名不是main,导致运行时报“Compilation finished with exit code 0”

2.解决方案:
rename 包名为:main
package main
import "fmt"
func main(){
   fmt.Println("Hello")
   fmt.Println("1+1 = ", 1+1)
   fmt.Println("HAHAH" )
}												
											go 学习第一个hello world 遇到的问题的更多相关文章
- [深度学习]实现一个博弈型的AI,从五子棋开始(1)
		好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ... 
- [深度学习]实现一个博弈型的AI,从五子棋开始(2)
		嗯,今天接着来搞五子棋,从五子棋开始给小伙伴们聊AI. 昨天晚上我们已经实现了一个五子棋的逻辑部分,其实讲道理,有个规则在,可以开始搞AI了,但是考虑到不够直观,我们还是顺带先把五子棋的UI也先搞出来 ... 
- 学习建一个spring-Mvc项目
		学习建一个spring-Mvc项目 首先要有jdk1.8以上,spring,mybatis,以及整合jar包,tomcat ,然后配置环境(前面有配置得方法). 1)右键new project,--& ... 
- 6、GNU makefile工程管理学习的一个例子
		在之前我们已经学习了一个文件的编译过程,但是做过项目的都知道,一个工程中的源文件不计其数,其按类型.功能.模块会分别放在若干个目录中,而这些文件如何编译就需要有一个编译规则,虽然现在很多大型的项目都是 ... 
- PDNN: 深度学习的一个Python工具箱
		PDNN: 深度学习的一个Python工具箱 PDNN是一个在Theano环境下开发出来的一个Python深度学习工具箱.它由苗亚杰(Yajie Miao)原创.现在仍然在不断努力去丰富它的功能和扩展 ... 
- 笨重的mfc还在基于系统控件,熟练的mfc工程师还比不过学习Qt一个月的学生开发效率高(比较精彩,韦易笑)
		作者:韦易笑链接:https://www.zhihu.com/question/29636221/answer/45102191来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新:擦,本来只有 ... 
- (Git 学习)一个账户怎么创建多个ssh key
		(Git 学习)一个账户怎么创建多个ssh key:1.https://segmentfault.com/a/1190000009572470?_ea=1985120 2.https://www.ji ... 
- 学习php一个星期
		学习这事都是被逼出来的,总监让我做一个邮箱系统,目测可以. 
- Android学习——第一个NDK程序
		在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ... 
- Openfire/XMPP学习之——一个简单的Smack样例
		昨天讲了Openfire的搭建和配置,今天来讲一下Smack.如果对如何搭建和配置Openfire的,可以参考Openfire/XMPP学习之——Openfire的安装.配置. Smack是一个开源, ... 
随机推荐
- ASP.NET Core之依赖注入
			本文翻译自:http://www.tutorialsteacher.com/core/dependency-injection-in-aspnet-core ASP.NET Core支持依赖注入,依赖 ... 
- 通过mysqlbinlog 恢复数据
			前提数据库开启了bin_log记录日志. 查看日志 刷新日志 flush logs; 再次查看 show binary logs; 向表中插入一条数据 现在执行delete误操作,删除所有的数据. d ... 
- MySQL基础使用
			数据库 其实我们常常说的数据库,应该叫数据库系统. 表和库 数据表:用来保存数据的表格 数据库:用来统一管理数据表的容器 启动mysql 关闭mysql service mysqld start(启动 ... 
- ajax 函数回调
			var initTaxPriod = function (taxNo) { intitSearch(); $("#taxPeriod").html(""); t ... 
- 前端技术之--HTML
			1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(Web框架) ... 
- Python协程与asyncio
			asyncio(解决异步io编程的一整套解决方案,它主要用于异步网络操作.并发和协程)协程(Coroutine一种用户态的轻量级微线程,它是程序级别的,在执行过程中可以中断去执行其它的子程序,别的子程 ... 
- H5测试与PC端测试不同的点
			1.通过H5网页(非手机的返回功能)的返回功能可以返回,不会出现无法返回的情况. 2.横屏竖屏相互切换,能自适应,并且布局不会乱掉: 3.为能在不同分辨率的手机上能更好的展示,建议采用响应式设计(如: ... 
- 重新学习Java的开始~
			安装jdk的步骤及解释已经在这篇文章中详细阐述了,如下: http://www.cnblogs.com/godtrue/p/4338323.html 1.如何安装库源文件--摘自coreJava 库源 ... 
- BeautifulSoup学习 之结构
			Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag NavigableString BeautifulSoup Co ... 
- Python开发技术详解PDF
			Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ... 
