在win10本机上装了一个Ubuntu系统,版本信息如下:
root@N-20HEPF15JN1Q:/home/ubuntu/go# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
Go 语言在性能上更接近于 Java 语言,虽然在某些测试用例上不如经过多年优化的 Java 语言,但毕竟 Java 语言已经经历了多年的积累和优化。为什么你应该学习Go语言?https://www.liwenzhou.com/posts/Go/about_golang/
刚好可以在本机的ubuntu上试试安装一下go的环境,运行个Hello World 。
1、下载go的安装包,以linux安装为例:https://golang.google.cn/dl/go1.15.1.linux-amd64.tar.gz
2、将下载好的安装包解压到/usr/local/下
tar -zxvf go1.15.1.linux-amd64.tar.gz -C /usr/local # 解压
3、配置go的环境变量;当然不添加也可以,只不过每次运行要使用绝对路径/usr/local/go/bin/go,来执行想要执行的命令;
vim /etc/profile
##文件尾部添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
------------------------------
修改/etc/profile后要重启生效
4、检验;反正我是偷懒了,没有配置环境变量;
root@N-20HEPF15JN1Q:/usr/local/go/bin# ./go version
go version go1.15.1 linux/amd64
-------------------------------------------------------------------------
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。
可以执行下面的命令修改GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct
5、编写第一个go的代码,并输出Hello World;
新建main.go文件,并编写go的代码,在控制台上输出打印;
root@N-20HEPF15JN1Q:/home/ubuntu/go# cat main.go
package main
import fmt
func main(){
fmt.Println("hello world !!! ")
}
编译的时候报错了,
root@N-20HEPF15JN1Q:/home/ubuntu/go# /usr/local/go/bin/go build
main.go:2:11: expected 'STRING', found newline
Go语言使用了()将引入的包放在一块,当然,也可以写成import "fmt",此外,代码的换行并没有要求;号,回到import语句,引入的包必须要有双引号,否则就会报错。
修改后:
root@N-20HEPF15JN1Q:/home/ubuntu/go# cat main.go
package main
import ("fmt")
func main(){
fmt.Println("hello world !!! ")
}
编译 /usr/local/go/bin/go build 并执行这个main.go;
root@N-20HEPF15JN1Q:/home/ubuntu/go# /usr/local/go/bin/go build
root@N-20HEPF15JN1Q:/home/ubuntu/go# ll
total 1988
drwxr-xr-x 1 root root 4096 Sep 8 10:44 ./
drwxr-xr-x 1 ubuntu ubuntu 4096 Sep 8 10:09 ../
-rwxr-xr-x 1 root root 2034794 Sep 8 10:45 go*
-rwxr-xr-x 1 root root 79 Sep 8 10:44 main.go*
root@N-20HEPF15JN1Q:/home/ubuntu/go# ./go
hello world !!!
6、与java语言的简单对比;
一个Go的源代码都必须包含Package,表示这个代码文件所属的包,这一点和Java很像,通过Package的使用具体了工程上的依赖。从Google的结果来看,要生成一个可执行的文件,必须要有一个main包和一个main函数,作为整个工程的入口,类似于Java的main方法,但是Java的main方法并不要求一定是main的package。