Go语言的故事
故事
Rob Pike 是Go 发明者之一, 贝尔实验室UNIX小组成员之一, UTF-8的设计人
Go 语言的吉祥物 正是这位大佬的妻子创作绘制的~ 可爱的 Gordon~
为什么需要一个新的语言
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即可\
配置系统变量
-
在
我的电脑
下 选属性 -
环境变量 然后在系统变量(对整个电脑有效) 创建 GOPATH 和 GOROOT
-
GOROOT 值为 Go安装目录
-
GOPATH 值为Go语言项目的路径, 里面包含 src (放源代码的地方), pkg(打包or下载包存放的地方), bin(下载第三方可执行软件的地方) 三个目录
-
在path 也进行设置
验证是否安装成功
- 打开terminal(终端工具 win+r 输入 cmd)
- 输入 go version
- 有版本信息输出说明go安装完毕~
- 可以试着输入 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 包,那么编译时将会出错,无法生成可执行文件。