script / go / golang

s

 

go / golang

https://baike.baidu.com/item/go/953521

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算

简介编辑 语音
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。 [2]
描述编辑 语音
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。 [2]
撰写风格编辑 语音
在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
每行程序结束后不需要撰写分号(;)。
大括号({)不能够换行放置。
if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。 [2]
编译器编辑 语音
当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。 [

 
Linux下安装Go环境

https://www.cnblogs.com/yiyi20120822/p/11652612.html
亲测可用,ubuntu18.04,转载自https://www.jianshu.com/p/c43ebab25484
安装Go环境

Golang官网下载地址:https://golang.org/dl/

  1. 打开官网下载地址选择对应的系统版本, 复制下载链接
    这里我选择的是
    go1.11.5.linux-amd64.tar.gzhttps://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
 
image.png
  1. cd进入你用来存放安装包的目录,我习惯在~下面创建个go文件夹。
# 在 ~ 下创建 go 文件夹,并进入 go 文件夹
mkdir ~/go && cd ~/go
下载的 go 压缩包
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
  1. 下载完成
 
  1. 执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等
tar -C /usr/local -zxvf  go1.11.5.linux-amd64.tar.gz
  1. 添加/usr/loacl/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以
# 习惯用vim,没有的话可以用命令`sudo apt-get install vim`安装一个
vim /etc/profile
# 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
# 保存退出后source一下(vim 的使用方法可以自己搜索一下)
source /etc/profile
  1. 执行go version,如果现实版本号,则Go环境安装成功。是不是很简单呢?
     

运行第一个程序


  1. 先创建你的工作空间(Workspaces),官方建议目录$HOME/go
mkdir $HOME/go
  1. 将你的工作空间路径声明到环境变量中。和上一部分的第5步相似。
# 编辑 ~/.bash_profile 文件
vim ~/.bash_profile
# 在最后一行添加下面这句。$HOME/go 为你工作空间的路径,你也可以换成你喜欢的路径
export GOPATH=$HOME/go
# 保存退出后source一下(vim 的使用方法可以自己搜索一下)
source ~/.bash_profile
  1. 在你的工作空间创建你的第一个工程目录
# 创建并进入你的第一个工程目录
mkdir -p $GOPATH/src/hello && cd $GOPATH/src/hello
  1. 在你的工程目录下创建名为hello.go的文件
vim hello.go
  1. 将下面内容粘贴到 hello.go 文件
package main

import "fmt"

func main() {
    fmt.Printf("hello, world
")
}
  1. 好了,工程目录和工程文件都准备好了。现在我们到我们的工程目录($GOPATH/src/hello)下构建我们的工程
# 如果你当前的目录不在 $GOPATH/src/hello, 需要先执行 "cd $GOPATH/src/hello" 进入该目录
# 执行构建工程的命令
go build
  1. 等一会,命令执行完之后你可以看到目录下会多出一个 hello 的文件,这就是我们编译之后的文件啦。怎么执行我们的程序呢?只需要在当前目录下执行./xxx就可以啦!是不是敲鸡煎蛋呢!
./hello
 

关于Go的一些介绍


环境变量:

  • $GOROOT:
    表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
  • $GOPATH:
    表示我们的工作空间。用来存放我们的工程目录的地方。

GOPATH目录:

一般来说GOPATH下面会有三个文件夹:binpkgsrc,没有的话自己创建。每个文件夹都有其的作用。

  • bin:编译后可的执行文件的存放路径
  • pkg:编译包时,生成的.a文件的存放路径
  • src:源码路径,一般我们的工程就创建在src下面。

注意:如果要用Go Mod(Go1.11及以上支持)进行包管理,则需要在 GOPATH 以外的目录创建工程。关于Go Mod的使用,可以自行Google一下,这里就不赘述了。

 

end

原文地址:https://www.cnblogs.com/lindows/p/14983264.html