Go语言之基础入门

网站:http://hardyfish.top/

免费书籍分享:

资料链接:https://url81.ctfile.com/d/57345181-61545511-81795b?p=3899

访问密码:3899

在这里插入图片描述

免费专栏分享:

MySQL是怎样运行的从根儿上理解MySQL

课程链接:https://juejin.cn/book/6844733769996304392

资料链接:https://url81.ctfile.com/f/57345181-1272304696-1e5528?p=3899

访问密码:3899

架构实战案例解析

课程链接:https://time.geekbang.org/column/intro/281

资料链接:https://url81.ctfile.com/f/57345181-1272420925-8cf0b9?p=3899

访问密码:3899

给程序员的职场情商课

课程链接:https://www.imooc.com/read/62

资料链接:https://url81.ctfile.com/f/57345181-1272447235-571d25?p=3899

访问密码:3899

从0开始学大数据

课程链接:https://time.geekbang.org/column/intro/100020201

资料链接:https://url81.ctfile.com/f/57345181-1313968579-ad89a0?p=3899

访问密码:3899

在这里插入图片描述

Go语言优势

语法简洁,相比其他语言更容易上手,开发效率更高;

自带垃圾回收(GC),不用再手动申请释放内存,能够有效避免 Bug,提高性能;

语言层面的并发支持,让你很容易开发出高性能的程序;

提供的标准库强大,第三方库也足够丰富,可以拿来即用,提高开发效率;

可通过静态编译直接生成一个可执行文件,运行时不依赖其他库,部署方便,可伸缩能力强;

提供跨平台支持,很容易编译出跨各个系统平台直接运行的程序。

Java 虽然具备垃圾回收功能,但它是解释型语言,需要安装 JVM 虚拟机才能运行;

C 语言虽然不用解释,可以直接编译运行,但是它不具备垃圾回收功能,需要开发者自己管理内存的申请和释放,容易出问题。

而 Go 语言具备了两者的优势。

微服务和云原生已经成为一种趋势,而 Go 作为一款高性能的编译型语言,最适合承载落地微服务的实现,又容易生成跨平台的可执行文件,相比其他编程语言更容易部署在 Docker 容器中,实现灵活的自动伸缩服务。

第一个Go语言程序

package main

import "fmt"

func main() {

    fmt.Println("Hello, 世界")

}
$ go run ch01/main.go

Hello, 世界

代码中的 go 是一个 Go 语言开发工具包提供的命令,它和你平时常用的 ls 命令一样都是可执行的命令。

它可以帮助你运行 Go 语言代码,并进行编译,生成可执行的二进制文件等。

run 在这里是 go 命令的子命令,表示要运行 Go 语言代码的意思。

第一行的 package main

代表当前的 ch01/main.go 文件属于哪个包,其中 package 是 Go 语言声明包的关键字,main 是要声明的包名。

在 Go 语言中 main 包是一个特殊的包,代表你的 Go 语言项目是一个可运行的应用程序,而不是一个被其他项目引用的库。

第二行的 import “fmt”

是导入一个 fmt 包,其中 import 是 Go 语言的关键字,表示导入包的意思,这里导入的是 fmt 包,导入的目的是要使用它。

第三行的 func main()

是定义了一个函数,其中 func 是 Go 语言的关键字,表示要定义一个函数或者方法的意思,main 是函数名,() 空括号表示这个 main 函数不接受任何参数。

在 Go 语言中 main 函数是一个特殊的函数,它代表整个程序的入口,也就是程序在运行的时候,会先调用 main 函数,然后通过 main 函数再调用其他函数,达到实现项目业务需求的目的。

第四行的 fmt.Println(“Hello, 世界”)

是通过 fmt 包的 Println 函数打印 Hello, 世界 这段文本。

其中 fmt 是刚刚导入的包,要想使用一个包,必须先导入。

Println 函数是属于包 fmt 的函数,这里我需要它打印输出一段文本,也就是 Hello, 世界。

第五行的大括号 }

表示 main 函数体的结束。

语言环境搭建

先下载 Go 语言开发包。

可以从官网 https://golang.org/dl/ 和 https://golang.google.cn/dl/ 下载(第一个链接是国外的官网,第二个是国内的官网,如果第一个访问不了,可以从第二个下载)。

安装测试

可以打开终端或者命令提示符,输入 go version 来验证 Go 语言开发工具包是否安装成功。

如果成功的话,会打印出 Go 语言的版本和系统信息。

环境变量设置

GOPATH

代表 Go 语言项目的工作目录,在 Go Module 模式之前非常重要,现在基本上用来存放使用 go get 命令获取的项目。

GOBIN

代表 Go 编译生成的程序的安装目录,比如通过 go install 命令,会把生成的 Go 程序安装到 GOBIN 目录下,以供你在终端使用。

假设工作目录为 /Users/flysnow/go,你需要把 GOPATH 环境变量设置为 /Users/flysnow/go,把 GOBIN 环境变量设置为 $GOPATH/bin。

项目结构

采用 Go Module 的方式,可以在任何位置创建你的 Go 语言项目。

假设你的项目位置是 /Users/flysnow/git/gotour,打开终端,输入如下命令切换到该目录下:

$ cd /Users/flysnow/git/gotour

然后再执行如下命令创建一个 Go Module 项目:

$ go mod init

执行成功后,会生成一个 go.mod 文件。

然后在当前目录下创建一个 main.go 文件,这样整个项目目录结构是:

gotour

├── go.mod

├── lib

└── main.go

其中 main.go 是整个项目的入口文件,里面有 main 函数。

lib 目录是项目的子模块,根据项目需求可以新建很多个目录作为子模块,也可以继续嵌套为子模块的子模块。

编译发布

可以编译生成可执行文件,也可以把它发布到 $GOBIN 目录,以供在终端使用。

在项目根目录输入以下命令,即可编译一个可执行文件。

$ go build ./ch01/main.go

回车执行后会在当前目录生成 main 可执行文件。

$ ./main 

Hello, 世界

如果成功打印出 Hello, 世界,证明程序成功生成。

以上生成的可执行文件在当前目录,也可以把它安装到 $GOBIN 目录或者任意位置,如下所示:

$ go install ./ch01/main.go

使用 go install 命令即可,现在你在任意时刻打开终端,输入 main 回车,都会打印出 Hello, 世界。

跨平台编译

Go 语言通过两个环境变量来控制跨平台编译,它们分别是 GOOS 和 GOARCH 。

  • GOOS:代表要编译的目标操作系统,常见的有 Linux、Windows、Darwin 等。
  • GOARCH:代表要编译的目标处理器架构,常见的有 386、AMD64、ARM64 等。

这样通过组合不同的 GOOS 和 GOARCH,就可以编译出不同的可执行程序。

比如操作系统是 macOS AMD64 的,想编译出 Linux AMD64 的可执行程序,只需要执行 go build 命令即可,如以下代码所示:

$ GOOS=linux GOARCH=amd64 go build ./ch01/main.go

编辑器推荐

第一款是 Visual Studio Code + Go 扩展插件,通过官方网站 https://code.visualstudio.com/ 下载使用。

第二款是老牌 IDE 公司 JetBrains 推出的 Goland,所有插件已经全部集成,更容易上手,并且功能强大,新手老手都适合,可以通过官方网站 https://www.jetbrains.com/go/ 下载使用。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为你推荐 Go 语言的中文基础入门教材。我推荐的是 "Go 入门指南" 这本书。这本书由阮一峰编写,是一本非常适合初学者学习 Go 的教材。它从 Go 语言的基本语法开始,一直讲到 Go 语言的高级特性,包括并发编程,网络编程,以及 Go 语言的工具链等。 另外,还有 "Go 编程基础" 这本书也是一本很好的 Go 语言入门教材。这本书由 AstaXie 编写,也是从 Go 语言的基本语法开始讲解,讲述的内容包括 Go 语言的数据类型、流程控制、函数、面向对象编程、并发编程等。 希望这些推荐能帮到你。 ### 回答2: 推荐《Go语言圣经》作为最新的中文基础入门教材,该书由美国Go语言的创始人之一Alan A.A. Donovan和Google工程师Brian W. Kernighan合著,由人民邮电出版社出版。该书以深入浅出的方式介绍了Go语言基础知识和核心概念,适合初学者入门使用。 《Go语言圣经》全书分为11个章节,从基础概念、基本语法和数据类型开始,逐步介绍了函数、指针、结构体、方法、接口、并发等高级特性。每个章节都配备了大量的示例代码和练习题,帮助读者理解和巩固所学知识。 这本书的亮点之一是它与Go语言官方文档相结合的方式,使得读者能够更好地理解和运用所学知识。此外,在讲解基础知识的同时,书中也涉及了一些实际应用场景,为读者提供了实践的机会。 《Go语言圣经》由于由Go语言的创始人之一和Google工程师合著,因此具有权威性和深度。该书的语言通俗易懂,适用于零基础或其他语言背景的读者。通过阅读和实践,读者能够掌握Go语言的基本语法和特性,为进一步的学习和应用打下基础。 ### 回答3: 在Go语言领域,有一本备受推荐和认可的中文基础入门教材是《Go语言入门指南》。这本教材由暮色短发撰写,是一本深受学习者欢迎的教程。 《Go语言入门指南》首先从介绍Go语言的历史和特点开始,帮助读者快速了解该语言的背景和优势。接着,教材详细讲解了Go语言的基本语法、数据类型、变量、函数、流程控制以及面向对象编程等核心概念。每个知识点都配有大量的代码实例和解释,让读者能够通过实践理解和巩固所学知识。 此外,《Go语言入门指南》还涵盖了常用的标准库和Go语言的并发编程,对如何使用这些特性进行了详细讲解。通过学习这些内容,读者可以掌握Go语言基础知识,并能够进行简单的项目开发。 这本教材的优点在于简洁明了,易于理解。作者结合自己的经验和实践,将复杂的概念和知识点讲解得浅显易懂。同时,配有丰富的实例和练习,帮助读者巩固所学内容。 总之,《Go语言入门指南》是我强烈推荐的Go语言基础教材。它适合初学者入门,也适合有一定编程基础开发者进一步学习和提升。通过阅读这本教材,你可以有效地掌握Go语言基础知识,并能够运用到实际的项目开发中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值