0
点赞
收藏
分享

微信扫一扫

Go语言从入门到规范-1.1、Go语言官网文档大纲及环境搭建


Go语言从入门到规范-1.1、Go语言官网文档大纲及环境搭建

文章目录

  • ​​Go语言从入门到规范-1.1、Go语言官网文档大纲及环境搭建​​
  • ​​前言​​
  • ​​一、go简介及学习路径​​
  • ​​二、安装go​​
  • ​​1、下载Go发行版​​
  • ​​2、系统需求​​
  • ​​3、安装Go工具​​
  • ​​(1)、Linux、Mac OS X 和 FreeBSD 的可用安装方式​​
  • ​​(2)、Mac OS X可用安装方式​​
  • ​​(3)、Windows下可用安装方式​​
  • ​​4、测试安装是否成功​​
  • ​​5、设置工作环境变量​​
  • ​​6、卸载Go​​
  • ​​7、获取帮助​​
  • ​​三、学习Go语法和编码规范​​
  • ​​1、Go入门​​
  • ​​2、如何使用Go编程​​
  • ​​3、实效Go编程​​
  • ​​4、Go项目的FAQ​​
  • ​​5、Go维护的维基百科​​
  • ​​6、更多学习​​
  • ​​四、Go资源-标准库等​​
  • ​​1、Go标准库文档​​
  • ​​2、Go命令文档​​
  • ​​3、官方Go语言规范​​
  • ​​4、Go内存模型​​
  • ​​5、Go发行历史​​
  • ​​五、Go官方博客​​
  • ​​1、函数、文本、共享内存、web应用开发等​​
  • ​​(2)、Go语言的一些用法​​
  • ​​3、Go包​​
  • ​​4、Go工具​​
  • ​​六、Go相关的一些演讲视频​​
  • ​​1、Go视频教程​​
  • ​​2、Go代码设计​​
  • ​​3、Go并发模式​​
  • ​​4、Go的高级并发模式​​
  • ​​5、更多​​

前言

最近的项目中整个项目组使用了go语言作为该嵌入式项目的开发语言,而且预留了一些时间让我来熟悉这块的基础内容,这是一个让人振奋的机会,因为虽然我一直对go念念不忘,但是自从在frp接触过go之后已经很久没有看过go相关的内容了,这次项目上有这个机会,正好边学习边总结。从目前来看go的诞生就像当初c++、Java诞生的时候一样有其设计初衷,都是市场需求的产物,因此有学习和掌握的必要性,由于硬件资源的不断突破,嵌入式开发的后端的代码量也在不断逼近大型服务软件的后端,这也是相较于c,c++、go、python等语言在嵌入式领域也越来越流行的原因。

一、go简介及学习路径

go官网:https://golang.org/

go的GitHub地址:https://github.com/golang/go

go非英语语言文档:https://github.com/golang/go/wiki/NonEnglish

go中文文档:https://go-zh.org/

go语法学习指南:https://tour.go-zh.org/welcome/1

目前的总结也是基于官网的文档学习。

Go编程语言是一个开放源代码项目,旨在提高程序员的生产力。

Go富有表现力,简洁,整洁且高效。它的并发机制使编写程序可以轻松地从多核和联网机器中获得最大收益,而其新颖的类型系统则可以实现灵活的模块化程序构造。Go可以快速编译为机器代码,但具有垃圾回收的便利性和运行时反射的功能。这是一种快速的,静态类型的编译语言,感觉就像是一种动态类型的解释语言。

二、安装go

下载安装Go编译器、工具与库

1、下载Go发行版

​​官方二进制发行版​​​ 可支持FreeBSD、Linux、Mac OS X(Snow Leopard、Lion和Mountain Lion)、 NetBSD和Windows操作系统以及32位(​​386​​​)和64位(​​amd64​​)的 x86 处理器架构。即可以从这里下载安装包直接下载:https://golang.org/dl/

若在你的操作系统和架构上没有可用的二进制发行版,请尝试 ​​从源码安装Go​​​ 或 ​​安装gccgo来代替gc​​。可以简单理解成安装go源码以及go编译器自行在新架构中编译运行,也就是一些go的基础库等等的需要自行编译适配。

2、系统需求

​gc​​​ 编译器支持以下操作系统及架构。在开始前,请确保你的系统满足这些需求。 若你的OS及架构不在此列表中,那么 ​​gccgo​​​ 可能支持你的设置, 详情请访问​​设置并使用gccgo​​。

操作系统

架构

注释

FreeBSD 7或更新

amd64、386、arm

不支持Debian GNU/kFreeBSD;FreeBSD/ARM需要FreeBSD 10或更新

Linux 2.6.23或更新,带glibc

amd64、386、arm

不支持CentOS/RHEL 5.x;ARM还没有二进制发行版

Mac OS X 10.6或更新

amd64、386

使用Xcode‡及其自带gcc†

Windows 2000或更新

amd64、386

使用mingw gcc†,无需cygwin或msys

†仅当你打算用​​cgo​​​时才需要​​gcc​​​。
‡只需为 ​​​Xcode​​安装命令行工具即可。 若你已经安装了Xcode 4.3+,只需从下载配置面板的组件标签内安装它即可。

3、安装Go工具

若你要从旧版本的Go升级,那么首先必须​​卸载已存在的版本​​。

(1)、Linux、Mac OS X 和 FreeBSD 的可用安装方式

​​下载此压缩包​​​(压缩包所在最终网址:https://golang.org/dl/)并提取到 ​​/usr/local​​​ 目录,在 ​​/usr/local/go​​ 中创建Go目录树。例如:

sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz

该压缩包的名称可能不同,这取决于你安装的Go版本和你的操作系统以及处理器架构。

(此命令必须作为root或通过 ​​sudo​​ 运行。)

要将 ​​/usr/local/go/bin​​​ 添加到 ​​PATH​​​ 环境变量, 你需要将此行添加到你的 ​​/etc/profile​​​(全系统安装)或 ​​$HOME/.profile​​ 文件中:

export PATH=$PATH:/usr/local/go/bin

Go语言从入门到规范-1.1、Go语言官网文档大纲及环境搭建_go语言

安装到指定位置

Go二进制发行版假定它们会被安装到 ​​/usr/local/go​​​ (或Windows下的 ​​c:\Go​​​)中,但也可将Go工具安装到不同的位置。 此时你必须设置 ​​GOROOT​​ 环境变量来指出它所安装的位置。

例如,若你将Go安装到你的home目录下,你应当将以下命令添加到 ​​$HOME/.profile​​ 文件中:

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

:​​GOROOT​​ 仅在安装到指定位置时才需要设置。

(2)、Mac OS X可用安装方式

打开此​​包文件​​​ (最终网址:https://golang.org/dl/)并跟随提示来安装Go工具。该包会将Go发行版安装到 ​​/usr/local/go​​ 中。

此包应该会将 ​​/usr/local/go/bin​​​ 目录放到你的 ​​PATH​​ 环境变量中。 要使此更改生效,你需要重启所有打开的终端回话。

(3)、Windows下可用安装方式

对于Windows用户,Go项目提供两种安装选项(​​从源码安装​​除外): zip压缩包需要你设置一些环境变量,而实验性MSI安装程序则会自动配置你的安装。

MSI安装程序

打开此​​MSI文件​​​ (最终网址:https://golang.org/dl/)并跟随提示来安装Go工具。默认情况下,该安装程序会将Go发行版放到 ​​C:\Program Files\Go​​ 中。

此安装程序应该会将 ​​C:\Program Files\Go\bin​​​ 目录放到你的 ​​PATH​​ 环境变量中。 要使此更改生效,你需要重启所有打开的命令行。

Zip压缩包

​​下载此zip文件​​​ 并提取到你的自选目录(我们的建议是​​c:\Go​​):

若你选择了 ​​c:\Go​​​ 之外的目录,你必须为你所选的路径设置 ​​GOROOT​​ 环境变量。

将你的Go根目录中的 ​​bin​​​ 子目录(例如 ​​C:\Program Files\Go\bin​​​)添加到你的 ​​PATH​​ 环境变量中。

在Windows下设置环境变量

在Windows下,你可以通过在系统“控制面板”中,“高级”标签上的“环境变量”按钮来设置环境变量。 Windows的一些版本通过系统“控制面板”中的“高级系统设置”选项提供此控制板。

4、测试安装是否成功

通过构建一个简单的程序来检查Go的安装是否正确,具体操作如下:

首先创建一个名为 ​​hello.go​​ 的文件,并将以下代码保存在其中:

package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}

接着通过 ​​go​​ 工具运行它:

$ go run hello.go
hello,

若你看到了“hello, world”信息,那么你的Go已被正确安装。

5、设置工作环境变量

这个我们放到工程项目规范中再总结。

6、卸载Go

要从你的系统中移除既有的Go安装,需删除 ​​go​​​ 目录。 在 Linux、Mac OS X、和 FreeBSD 系统下通常为 ​​/usr/local/go​​​, 在 Windows 下则为 ​​c:\Go​​。

你也应当从你的 ​​PATH​​​ 环境变量中移除 Go 的 ​​bin​​​ 目录。 在 Linux 和 FreeBSD 下你应当编辑 ​​/etc/profile​​​ 或 ​​$HOME/.profile​​​。 若你是通过​​Mac OS X 包​​​安装的 Go,那么你应当移除 ​​/etc/paths.d/go​​​ 文件。 Windows 用户请阅读​​在 Windows 下设置环境变量​​一节。

7、获取帮助

要获取实时帮助,请询问 ​​Freenode​​​ IRC 上 ​​#go-nuts​​ 中的 Gopher 们。

Go 语言的官方讨论邮件列表为 ​​Go Nuts​​。

请使用​​Go 问题跟踪器​​报告Bug。

三、学习Go语法和编码规范

1、Go入门

​​https://tour.go-zh.org/list​​

包括基础、接口和方法以及并发三部分。

2、如何使用Go编程

​​https://go-zh.org/doc/code.html​​

3、实效Go编程

​​https://go-zh.org/doc/effective_go.html​​

4、Go项目的FAQ

​​https://go-zh.org/doc/faq​​

5、Go维护的维基百科

​​https://github.com/golang/go/wiki​​

6、更多学习

​​https://github.com/golang/go/wiki/Learn​​

四、Go资源-标准库等

1、Go标准库文档

​​https://go-zh.org/pkg/​​

2、Go命令文档

​​https://go-zh.org/doc/cmd​​

3、官方Go语言规范

​​https://go-zh.org/ref/spec​​

4、Go内存模型

​​https://go-zh.org/ref/mem​​

5、Go发行历史

​​https://go-zh.org/doc/devel/release.html​​

五、Go官方博客

主要是Go项目的官方博客:https://blog.golang.org/

1、函数、文本、共享内存、web应用开发等

  • ​​函数​​ - Go 语言中的一等公民
  • ​​生成任意文本:马尔可夫链算法​​
  • ​​通过通信共享内存​​
  • ​​编写Web应用​​ - 构建简单的Web应用

(2)、Go语言的一些用法

  • ​​JSON-RPC:有关接口的故事​​
  • ​​Go 的声明语法​​
  • ​​Defer、Panic 和 Recover​​
  • ​​Go 并发模式:超时,继续​​
  • ​​Go 切片:用法和本质​​
  • ​​GIF 解码器:Go 接口练习​​
  • ​​Go 与错误处理​​
  • ​​组织 Go 代码​​

3、Go包

  • ​​JSON 和 Go​​​ - 使用​​json​​包。
  • ​​数据一坨​​​ -​​gob​​包的设计与使用
  • ​​反射法则​​​ -​​reflect​​包基础。
  • ​​Go 图像包​​​ -​​image​​包基础。
  • ​​Go 图像绘制包​​​ -​​image/draw​​包基础。

4、Go工具

  • ​​关于 Go 命令​​ - 为什么写它?它是什么?它不是什么?它怎么用?
  • ​​C? Go? Cgo!​​​ - 使用​​cgo​​连接 C 代码。
  • ​​使用GDB调试Go代码​​
  • ​​Godoc:编写 Go 代码文档​​​ - 为​​godoc​​编写好的文档。
  • ​​Go 程序性能分析​​
  • ​​数据竞态检测器​​ - 测试竞态条件下的 Go 程序。
  • ​​Go 竞态检测器介绍​​ - 对竞态检测器的介绍。
  • ​​Go 汇编器快速指南​​ - 对 Go 使用的汇编的介绍。

六、Go相关的一些演讲视频

1、Go视频教程

有三样东西使得 Go 快速、有趣而高效:接口、反射与并发。我们将通过构建一个玩具网络爬虫来展示它们。

​​http://research.swtch.com/gotour​​

2、Go代码设计

Go 的关键设计目标之一就是代码的适应性,它应当易于得到简单的设计,并以干净而自然的方式构建。 在此演讲中,Andrew Gerrand 描述了一种简单的“轮流聊天”服务,它匹配一对 TCP 接入的连接, 并使用 Go 的并发机制、接口和标准库来为它扩展出 Web 界面和其它特性。当该程序的函数戏剧性地改变后, Go 的灵活性在它增长时保留了其原始的设计。

​​https://vimeo.com/53221560​​

3、Go并发模式

并发是设计高性能网络服务的关键。Go 的并发原语(Go程与信道)提供了一个表达并发实行的简单而高效的手段。 在此演讲中,我们将看见如何用简单的 Go 代码优雅地解决棘手的并发问题。

​​https://www.youtube.com/watch?v=f6kdp27TYZs​​

4、Go的高级并发模式

此演讲是对 Go 的并发模式的进一步扩充,它对 Go 的并发原语进行了更加深入的探讨。

​​https://www.youtube.com/watch?v=QDDwwePbDtw​​

5、更多

更多关于 Go 的演讲见​​Go 演讲网站​​​和​​维基页面​​。


举报

相关推荐

0 条评论