Go基本安装
前言
之前一直对Go语言抱着很大的兴趣,趁现在有时间从头好好学习遍。
简介
官网对Go解释是:”Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.”,那么翻译中文是:“Go是一种开源编程语言,可以轻松构建简单,可靠且高效的软件。”
似乎这句话很大众话,好像没啥感觉,那么来个更详细的解释:
- Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。
- Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。
- Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。
- Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。
- 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。
Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
如果你需要了解更多的关于Go的基本信息可以去维基百科查看信息,本文不再做更多描述。
Go官方网站:https://golang.org Go官网文档:https://golang.org/doc
既然想去了解,那么上面俩个地址不得不去访问了解下。
安装
使用Go很简单,你只需要安装它的编译器就可以使用了:
首先你需要到下载地址下载你所用的系统安装包,点击安装即可。
Windows
如果是zip
解压的需要配置下环境变量,此过程不再描述。如果是msi
安装包他会自动配置你的环境编辑,检验你的是否正常使用只需要你打开cmd
或者powershell
输入:
PS C:UsersJaxson> go version
go version go1.10.2 windows/amd64
返回该系统版本信息则正常!
Unix
从官网下载zip
压缩包解压到/usr/local/go
即可:
tar -C /usr/local -xzf go$VERSION.
添加/usr/local/go/bin
到PATH
环境变量:
export PATH=$PATH:/usr/local/go/bin
有些命名需要
root
权限,请根据情况添加sudo
执行
GOPATH设置
仅仅安装好了是不够的我们还需要配置一些东西:GOPATH
Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg
从go 1.8开始,GOPATH
环境变量现在有一个默认值,如果它没有被设置。 它在Unix
上默认为$HOME/go
,在Windows
上默认为%USERPROFILE%/go
。
如果你的是Unix
环境需要:
export GOPATH=/home/apple/GoWork
Bash
那么Windows
你需要新建一个环境变量名称叫做GOPATH
:
GOPATH=F:GoWork
GOPATH
允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows
是分号,Linux
系统是冒号,当有多个GOPATH
时,默认会将go get
的内容放在第一个目录下。
以上 $GOPATH
目录约定有三个子目录:
- src 存放源代码(比如:.go .c .h .s等)
- pkg 编译后生成的文件(比如:.a)
- bin 编译后生成的可执行文件(为了方便,可以把此目录加入到
$PATH
变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin
添加所有的bin
目录)
Hello World
当你配置好了,我们进行下一步的构建一个简单的实例去检查是否正常。
在你的上文的GOPATH
新建个src/hello/hello.go
文件,内容如下:
package main
import "fmt"
func main() {
fmt.Printf("hello, worldn")
}
然后使用终端进入该文件夹,并且构建编译:
C:> cd %USERPROFILE%gosrchello
C:UsersGophergosrchello>
当你看到该目录下有个hello.exe
可执行文件。继续在终端执行:
C:UsersGophergosrchello> hello
hello, world
则会输出hello world
。
Last modification:May 13th, 2018 at 04:28 pm
© The copyright belongs to the author
Support
If you think my article is useful to you, please feel free to appreciate
×Close
- Git - 使用命令和P4Merge进行diff
- 使用Angular CLI进行Build (构建) 和 Serve
- 使用Angular CLI生成路由
- 使用Angular CLI从蓝本生成代码
- 使用Angular CLI生成 Angular 5项目
- Git基本命令 -- 创建Git项目
- Entity Framework Core 2.0 入门
- 用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传
- 用VSCode开发一个asp.net core 2.0+angular 5项目(4): Angular5全局错误处理
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(3)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- element-ui el-input只显示下划线
- 怎样去阅读源码,这篇文章值的你一读
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法