Go语言介绍和环境搭建

33 阅读4分钟

Go语言的故事

故事

Rob Pike 是Go 发明者之一, 贝尔实验室UNIX小组成员之一, UTF-8的设计人

Rob Pike

Go 语言的吉祥物 正是这位大佬的妻子创作绘制的~ 可爱的 Gordon~

Go语言吉祥物

为什么需要一个新的语言

C 系统效率高 但是开发起来较复杂

Java 开发起来相对简单 (面向对象) 更符合人的思维 并且很多大企业在用

强类型语言 (代码要严格按照要求, 出错了,能在写的时候看到) 弱类型语言(约束相对少, 开发轻松, 容易犯一些低级错误, 一般是跑完才知道出错, 然后再进行修改~)

效率高 + 开发简单 = 兼顾 (->创造一种新的语言 Go)

Go 是在2012年正式推出 Go 的三个作者分别是: Rob Pike, Ken Tompson, Robert Griesemer

Go 容器语言 云开发大部分是用 Golang (Docker, Go, Kubernetes, etcd)

Go 语言的整个设计哲学是 将简单、实用体现的淋漓尽致

区块链: 去中心化的技术

中心化: 数据不在我们手上 去中心化: 最终把数据的所有权放在我们手上

下载安装 Go

云原生时代, Go语言或将成为主力开发语言

地址: go.dev/dl/ 选择对应的版本下载即可

其中 .msi windows 安装使用 .pkg mac 安装使用 .tar.gz linux安装使用

安装程序一直点 next即可\

配置系统变量

  1. 我的电脑下 选属性

  2. 环境变量 然后在系统变量(对整个电脑有效) 创建 GOPATH 和 GOROOT

  3. GOROOT 值为 Go安装目录

  4. GOPATH 值为Go语言项目的路径, 里面包含 src (放源代码的地方), pkg(打包or下载包存放的地方), bin(下载第三方可执行软件的地方) 三个目录

  5. 在path 也进行设置

验证是否安装成功

  1. 打开terminal(终端工具 win+r 输入 cmd)
  2. 输入 go version
  3. 有版本信息输出说明go安装完毕~
  4. 可以试着输入 go env -> 查看go相关环境变量是否配置好

下载开发工具 Goland

官方地址: www.jetbrains.com/zh-cn/go/

一直next即可 (可以选择配置安装路径)

开始学习

创建项目

配置项目

File -> Settings -> 配置这三个 (前两个在前面已经配置好了) Go Modules (将来学习中下载第三方库的话 需要配置! )

Go Modules 设置 这里填的 在终端下 输入 go env 命令可以查看

配置好之后 点 Apply OK 即可

Hello World

初体验 记事本编写: hello.go (你可以操作计算机来做一些事情了~)

在命令行 使用命令 来执行 .go 文件

Go 是编译型静态语言, 故在Go程序执行之前, 会先把.go 编译成二进制的可执行文件

可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译:

  • go build 命令可以将Go语言程序代码编译成二进制的可执行文件,但是需要手动运行该二进制文件;
  • go run 命令则更加方便,它会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件,这个特点很适合用来调试程序

go build

go build 命令用来启动编译, 可以将Go 语言程序与相关以来编译成 可执行文件, 语法格式为:

go build fileName

其中 fileName 为所需要的参数,可以是一个或者多个 Go 源文件名(当有多个参数时需要使用空格将两个相邻的参数隔开),也可以省略不写

go build 命令是只有在出错的情况下, 才会有返回信息, 执行成功的话是没有返回信息的, 但是会在当前路径下生成对应的 .exe可执行文件

go run

go run命令将编译和执行指令合二为一, 会在编译之后立即执行Go语言程序, 但是不会生成可执行文件。

go run 命令的语法格式如下: go run fileName

其中 fileName 为所需要的参数,参数必须是同一 main 包下的所有源文件名,并且不能为空


使用 Goland来写 hello.go

package (创建包)

每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式如下: package name

其中 package 是声明包名的关键字,name 为包的名字。和包同名,除了入口文件,main 固定的写法

Go语言的包与文件夹是一 一对应的,它具有以下几点特性:

  • 一个目录下的同级文件属于同一个包
  • 包名可以与其目录名不同

main 包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。