文章目录
- 一、前言
- 二、安装和配置SDK
-
- 1、安装
- 2、环境配置
- 三、开发工具
-
- 1、GoLand
- 2、VS Code
- 四、Hello World程序
-
-
- 通过命令运行
-
- 1)go build
- 2)go run
- 1、Go 和 Java的文件结构对比
- 2、Go和Java常用包对比
-
- 五、Go执行流程
-
- 1、先编译再运行
- 2、一次性编译运行
- 区别?
- 六、总结和后续
一、前言
Go系列文章:
- GO开篇:手握Java走进Golang的世界
Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html
二、安装和配置SDK
1、安装
1> 进入到Go官网(https://golang.org),点击Download按钮;
2> 选择操作系统对应的环境版本(图形化安装),进行下载,比如博主的windows:
3> 下载完一路安装,博主的安装目录如下:
当然除此之外,还可以选择压缩包解压的方式;
PS:不用翻墙就可以访问的GO中文社区SDK下载地址:https://studygolang.com/dl。
2、环境配置
这个操作老常规了,通过路径(此电脑 -> 属性 -> 高级系统设置 -> 环境变量)找到系统变量;
1> 点击《新建》,添加两个环境变量GOPATH、GOROOT;
- GOROOT为go命令所在的bin目录(GO的安装路径)
- GOPATH路径为我们自己指定的GO程序所在的文件夹,当然在IDEA中开发,可以选择不配置这个环境变量,直接在IDEA中配置GOPATH。
- PS:如果是go1.14以前的版本,需要在GoPath路径下创建三个子目录,之后编写的Go项目都存放在src中。
- src —- 存放工程文件
- pkg —- 编译后生成的,包的目标文件
- bin —- 生成的可执行文件。
- PS:如果是go1.14以前的版本,需要在GoPath路径下创建三个子目录,之后编写的Go项目都存放在src中。
2> 在 环境变量 Path 中增加GOROOT/bin;
3> 在控制台验证环境变量的配置
三、开发工具
目前最常用的Go开发工具有三种:VS Code、LiteIDE、GoLand。
- visual studio code, Microsoft产品(简称VSCode):一个运行于Mac Os、Windows和Linux 之上的,默认提供Go语言的语法高亮,安装Go语言插件,还可以支持智能提示,编译运行等功能。
- LitelDE,是一款国人开发、专门为Go语言开发的跨平台轻量级集成开发环境(IDE)。
- GoLand, JetBrains公司的IDE工具系列产品,专门为Go语言服务;和Java的Intellij IDEA一样好用。
个人建议一步到位使用GoLand,如果你真的找不到激活码、也不会自己购买。那就用VS Code吧。
1、GoLand
1> 下载:
- 访问官网(https://www.jetbrains.com/zh-cn/go/) 点击下载按钮;
更多版本见官网(https://www.jetbrains.com/zh-cn/go/download/other.html)
2> 创建项目:
创建完成之后,项目结构如下:
3> 配置GOROOT:
2、VS Code
主打的就是一免费,官网地址(https://code.visualstudio.com/)。
四、Hello World程序
1> 编码
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
注意:package 一定要是main,否则执行不了。
2> 运行
3> 运行结果
通过命令运行
1)go build
可以选择用命令先将源代码编译成可执行源码文件、然后再运行。命令如下:
go build hello.go
.hello.exe
注意windows中直接运行hello.exe可能会报错,将命令调整为.hello.exe
即可。
此外,执行go build命令时,可以指定编译后的文件名:
go build -o saint.exe hello.go
2)go run
也可以直接通过 go run命令直接编译 执行 源文件。
go run hello.go
1、Go 和 Java的文件结构对比
最关键的一个点,Go主程序的入口类中package必须为main,Java主程序的入口package可以随便写。
1> Go的文件结构:
// 主程序必须是写成main包名
package main
// 导入别的类库
import "fmt"
// 全局常量定义
const num = 10
// 全局变量定义
var name string = "li_ming"
// 类型定义
type P struct {
}
// 初始化函数
func init() {
}
// main函数:程序入口
func main() {
fmt.Printf("Hello World");
}
2> Java的文件结构:
// 包名
package my_package;
// 导入其他包中的类
import java.io.*;
public Class MainTest{
// main方法:程序入口
public void static main(String[] args) {
}
}
// Model类
Class People {
// 成员变量
public String name;
public int age;
// 成员方法
public void doSomething() {
}
}
2、Go和Java常用包对比
Go中文API文档:https://studygolang.com/pkgdoc
Go | Java | |
---|---|---|
IO流操作 | bufio/os | java.lang.io |
字符串操作 | strings | java.lang.String |
容器 | container(heap/list/ring) | java.lang.Collection |
时间 | time | java.time/java.lang.Date |
锁 | sync | juc |
数学运算 | math | java.math |
五、Go执行流程
Go的执行流程有两种方式:先编译再运行、一次性编译运行。
1、先编译再运行
2、一次性编译运行
区别?
1> 编译(go build
)时,编译器会将程序运行所依赖的库文件都包含在可执行文件中,所以可执行文件会大很多。
2> 先编译生成了可执行文件之后,将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行;但是go run 源代码
的方式,如果想在另外一个机器上运行,需要有go开发环境,否则无法执行。
- 此处机器上的操作系统要一样,不能是windows到linux、或 到 unix。
3> go run
方式的 运行时间会比 go build 之后 再运行
的方式 长那么一点。
六、总结和后续
本文介绍了如何在一个电脑上从零开始搭建GO开发环境、开发工具,并开始写一个Hello World程序;
进而介绍了Java和Go类文件结构的差异,以及Go源文件的两种执行方式 和 对比。