【30天熟悉Go语言】2 Go开发环境搭建、Hello World程序运行

一、前言

Go系列文章:

  1. 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 ---- 生成的可执行文件。

在这里插入图片描述

在这里插入图片描述

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/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源文件的两种执行方式 和 对比。

Guess you like

Origin blog.csdn.net/Saintmm/article/details/130799639