博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go 语言环境搭建
阅读量:5964 次
发布时间:2019-06-19

本文共 2755 字,大约阅读时间需要 9 分钟。

本文内容

  • 概述
  • Go SDK
  • LiteIDE
  • 参考资料

2009年Google推出了它的第二个开源语言 Go。对 Go 的评价褒贬不一,。Go 天生就是为并发和网络而生的,除了这点外,在静态编译、GC、跨平台、易学、丰富的标准库等,其实并不如 C/C++、Java、C#、Python。由此可想而知,为什么会出现 Go?以及为什么 Go 存在如此多的问题和争论?——也许Go 更像是一个“天才的自闭症患者”,如果看清了这点,对网络和知乎上一些 Go 的褒贬也就能泰然啦,这就好像下班到家,是先吃饭,还是先洗澡,重要吗?~

概述

Go 是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。

罗伯特.格瑞史莫(Robert Griesemer),罗勃.派克(Rob Pike)及肯.汤普逊于2007年9月开始设计Go语言,稍后 Ian Lance Taylor, Russ Cox 加入项目中。Go 语言于2009年11月正式宣布推出,成为开放源代码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后追加 Windows系统下的实现。

Go 的前身来自于Inferno(基于Plan 9 的改造)。Inferno 包含了一个叫做 Limbo 的语言。这里引用了一段来自于 Limbo 论文的描述:

Limbo 是用于开发运行在小型计算机上的分布式应用的编程语言。它支持模块化编程,编译期和运行时的强类型检查,进程内基于具有类型的 channel 通讯,原子性垃圾回收和简单的抽象数据类型。它被设计用于即便没有硬件内存保护的小型设备上,也能安全的运行。

Go 从 Limbo 继承的另一个特性是 channel。从 Limbo 文档来的另一段描述:

channel 是用于向系统中其他代理发送和接收特定类型对象的通讯机制。channel 可以用于本地进程间通讯;用于连接到命名的目的地的库方法。两种情况都是直接发送和接收操作。

channel 在 Go 中比在 Limbo 中更加好用。如果我们对 Go 的历史深入探索,会发现一个指向“Newsqueak”的线索,这是在类C 语言中使用channel 进行通讯的先驱。channel 并不是这些语言独有的,另一个非类C 语言:Erlang,也在使用它。

图 1 Go 语言编年史

使用 channel 与其他进程进行通讯叫做“通讯序列化过程(Communicating Sequential Processes - CSP)”,由 C. A. R. Hoare 设计构想,而他正是那个发明快速排序算法的人。

Go 是第一个实现了简单的(或更加简单的)并行开发,且跨平台的类C 语言。Go 语言的语法接近 C 语言,但是对于变量的声明是不同的,其他语法不同之处是 For 循环和 if 判断式没有括号围绕。Go 语言支持垃圾回收功能。Go 语言的并行模型是以东尼.霍尔的 CSP 为基础,采取类似模型的其他语言包括 occam 和 Limbo,但它也具有 Pi 运算的特征,比如通道传输。

与 C++相比,Go语言并不包括如异常处理、继承、泛型、断言、虚函数等功能,但增加了 slice 型、并发、管道、垃圾回收、接口(interface)等特性的语言级支持。当然,Google 对于泛型的态度还是很开放的,但在该语言的常见问题列表中,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。不同于 Java,Go语言内嵌了关联数组(也称为哈希表(hashes)或字典(dictionaries)),就像字符串类型一样。

开发 Go 一般需要两个程序:

  • Go SDK,;
  • Go IDE——LiteIDE,。

本文以 Windows 7 64 位为环境,go1.4.2.windows-amd64 和 liteidex27.2.1.windows-qt5 为例。

Go SDK

图 2 Go SDK

默认安装路径为 C:\go 下。当然你可以更改该路径,只要在后续配置 IDE 时,使用正确的路径即可。

安装完成后,Go SDK 会自动为你添加系统环境变量。

现在,你可以用任何文本编辑器来编写 Go 代码,比如 HelloWorld.go,保存在 C 盘根路径下:

package main
 
import (
"fmt"
)
 
func main() {
fmt.Println("Hello World!")
}

然后,你就可以通过运行 go run HelloWorld.go 来执行这个程序。

C:\>go run HelloWorld.go
hello, world
 
C:\>

LiteIDE

如果不想用命令行,可以用 IDE 环境——LiteIDE,只需对 IDE 进行相应的配置即可。

除了 LiteIDE 外,还有 、Vim、Emacs、Eclipse、IntelliJ IDEA。

下载 LiteIDE 压缩文件,解压为 “liteide”后,双击 “{你的路径}\liteide\bin\liteide.exe”就可以看见如图 3 所示:

图 3 liteIDE 主界面

配置 liteIDE,点击菜单栏“查看->选项”,会看见如图 4 所示:

图 4 配置 liteIDE

左边选择“LiteIDE”,右边选择你的环境,比如,我的是 Windows 7 64 位,就选 win64-user.env,双击后,会看见该配置文件的内容:、

# native compiler windows amd64
 
GOROOT=C:\Go
#GOBIN=
GOARCH=amd64
GOOS=windows
CGO_ENABLED=1
 
PATH=%GOROOT%\bin;%PATH%
 
LITEIDE_GDB=gdb64
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C

除了 win64-user.env 外,还有 win64.env,前者是用户配置文件,后者是整个机器的配置文件,因为 Windows 操作系统是多用户的。

确保 GOROOT=C:\ 行,是你机器的实际 Go SDK 的路径即可,比如,我的路径其默认路径 C:\Go

工作路径。你可以为 LiteIDE 配置工作路径。选择工具栏”Go图标”,会看见图 5 所示:

图 5 配置工作路径

你可以看见两个路径,第一个是我自定义的,第二个是系统默认的。

参考资料

 

转载地址:http://povax.baihongyu.com/

你可能感兴趣的文章
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
解读最具O2O属性—哈根达斯微信企业号的成功之道
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>