哈哈哈哈,大家好,(趁着周末)我又来给大家安利Go语言了(为什么是“又”?)
简单过场:
我大概是2013年7月开始接触Go语言的,被大学同学安利(感谢@slowfei),尝试了解之后然后就被这不按常理出牌的语法、逻辑、关键字和诡异的格式化时间格式深深的吸引而无法自拔。
不接受反驳,当时道行尚浅
且所知编程语言有限,哈哈哈哈
Golang 简介:
Go 语言是由 Google 出品的的一门通用型计算机编程语言。种种亮点以及快速崛起的编程语言吸引着广大编程爱好者,近年来受到热捧 Go 已经成功跻身主流编程语言的行列。许多大厂也都已经拥抱 Go 语言,包括阿里巴巴、小米、滴滴、今日头条、奇虎360、京东、Bilibili、知乎、美图、猎豹移动等。
Go 程序可以装在有 Windows、Linux、FreeBSD等操作系统的服务器上运行,并用于提供基础软件支撑、API 服务、WEB 服务、网页服务等。Go 语言也在移动端上进行了积极的探索,现在在 Android 和 iOS 上都可以运行其程序。另外,Go 语言也已经和 WebAssembly 联合,加入了 WASM 平台。这意味着过不了多久,互联网浏览器也可以运行 Go 编写的程序了。
从业务维度看,在云计算、微服务、大数据、区块链、物联网等领域,Go 语言早已蓬勃发展。有的使用率已经非常之高,有的已有一席之地。即使是在 Python 为王的数据科学和人工智能领域,Go 语言也在缓慢渗透,并初露头角。
(参考引用 1.)
我只是早期的学习者和使用者,也与广大的爱好者见证了这几年 Go 语言的发展和崛起。
Go 1.5 自举( 用 Go 语言编写程序来实现 Go语言自身)
Go 1.7 急速GC (tricolor mark-and-sweep algorithm 三色标记清除算法)(参考引用 2.)
Go 1.10 自带工具全面升级 (参考引用 3.)
Go 1.11 Modules (前段时间吵得沸沸扬扬,简单看了下感觉像是 Nodejs 的管理模式,未尝试)
随着 Google 重回中国 Go 语言的中国官网镜像已经可以访问了!
Go 官网:golang.google.cn (新-中国可访问)
golang.org (主-需访问外国网站)
让我们来 Hello World! 吧!
上面介绍了这么多,那我们就别逼逼了
直接上代码!
好了,基础入门就到这里结束了,谢谢观看!
…
…
…
好好好,我错了
别说我不照顾你
你看我这里有一本……
让我们翻开第一页……
壮士且慢!我可是认真的!
第一页:《Go 语言环境配置》
首先,第一件事就是根据自己电脑的计算架构以及操作系统安装相对的语言支持包
Go 安装包:https://golang.google.cn/dl/
一般来说我们需要配置3个环境变量 GOROOT、GOPATH和GOBIN,但是GOPATH是最重要的,背后概念是最多的。
基础环境变量:(以Windows为例)
GOROOT:Go 语言源码存放路径,如果是msi安装包则默认 c:/go
GOPATH:Go 语言的工作区,也就是你自己的代码存放路径
GOBIN:一般默认不做设置
记得添加系统 path: %GOROOT\bin% ,这样你才可以在命令行中使用Go 命令
Go 命令参考:https://golang.google.cn/cmd/go/
以上都设置完成后,让我们打开命令行
输入:go version
回车!
(如果不出意外的话)
那么我们就能看到当前所使用的Go语言版本、操作系统以及计算架构了。
好,一切都顺利的话,那么我们就来说说重点 GOPATH
GOPATH:指向一个目录路径,也就是你的代码所在的工作区路径。
它包含了3个主要文件目录(命名均为小写):
bin:构建后,可执行文件目录 (Executable File)
pkg:归档文件目录 (Archive File)
src:源码文件目录(Source File)
目录结构如下:
了解了这点以后,那我们来试试 Hello world
src 下新建 hellogo 文件夹,进入 hellogo 文件夹 新建 main.go 文件,最终文件结构如下:
用记事本打开 main.go 输入以下代码(为什么使用记事本?因为我没给你们推荐ide工具啊!哈哈哈哈哈)
package main
import "fmt"
func main() {
fmt.Println("Hello Golang!")
}
保存,打开命令行,cd 进入该文件所在目录,输入命令 go run main.go
那么你就会得到文章之前所示的结果了。
就这么简单?那为什么说 GOPATH 是最重要的?
既然你诚心诚意的发问了
那么我就大发慈悲的告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的……
好好说话!
GOPATH
GOPATH 是 Go 语言项目在其生命周期内的所有操作基本上都是围绕着 GOPATH 和 工作区 进行的。
编码、依赖管理、构建、测试、安装等等。
GOPATH 可以是一个目录路径,也可以包含多个目录路径,每个目录都代表着 Go 的一个工作区(work space),其中源码是以代码包为基本组织单位,目录可以有子目录,所以代码包可以有子代码包,一个代码包可以包含任意个以 .go 为扩展名的源码文家你,这些文件都需要被声明为属于同一个代码包,代码包的名称一般会与这些源码文件所在的目录同名。如果不同名那么在构建、安装的过程中就会以代码包名称为准。
(参考引用 4.)
Go 1.10 新增变量:
GOCACHE
GOTMPDIR
如果在编译、安装、运行的过程中出现(非环境)没有具体提示但完成后没有正确产生文件的,可以尝试修改此变量路径。
最后,为什么说时间格式诡异?
Go time format 源码部分
传说:这是 Golang 种子思想诞生的时刻
最后的最后,Golang 吉祥物感谢您的观看
参考资料: 1. Go 语言核心 36 讲 | 预习篇——极客时间 作者:郝林 2. Go 语言的实时GC——理论与实践:https://segmentfault.com/a/1190000010753702 2.1:5张图看尽Go语言GC的演变史:https://blog.csdn.net/erlib/article/details/53434124 2.2:Golang Github 《建议:消除STW堆栈重新扫描》:https://github.com/golang/proposal/blob/master/design/17503-eliminate-rescan.md 3. 《Go 1.10中值得关注的几个变化》:http://ju.outofmemory.cn/entry/344575
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。