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

简介
罗伯特·格瑞史莫(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)。
[1]
描述
Go的语法接近
C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以
东尼·霍尔的
通信顺序进程(CSP)为基础,采取类似模型的其他语言包括
Occam和
Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如
枚举、
异常处理、
继承、
泛型、
断言、
虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
不同于
Java,Go内嵌了
关联数组(也称为
哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。
[1]
撰写风格
在Go中有几项规定,而且这些是强制的,当不匹配以下规定时编译将会产生错误。
-
每行程序结束后不需要撰写分号(;)。
-
大括号({)不能够换行放置。
-
if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。
[1]
编译器
当前有两个Go
编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。
官方地址:https://golang.google.cn/


安装流程:
下载linux安装包之后,放在/根目录下或者/usr/local/下根据自己的安装路径即可
[root@localhost ~]# ls
anaconda-ks.cfg go1.12.7.linux-amd64.tar.gz test1.go 公共 视频 文档 音乐
go initial-setup-ks.cfg test.go 模板 图片 下载 桌面
[root@localhost ~]# tar xf go1.12.7.linux-amd64.tar.gz
在末尾添加PATH环境变量,我的在root下所以放在这里,根据自己的安装路径设置
[root@localhost ~]# vim /etc/profile
export PATH=$PATH:/root/go/bin
[root@localhost ~]# go
go godoc gofmt
现在已经安装好了,让我们来体验go语言
[root@localhost ~]# vim test.go

[root@localhost ~]# go run test.go
hello,欢迎浏览我的博客,我是赵程
让我们一起来学习go语言吧
[root@localhost ~]# vim test.go

[root@localhost ~]# go run test.go
面积为 600
golang语言初体验
原文:https://www.cnblogs.com/zc1741845455/p/11326957.html