计算机编程语言
展开28个同名词条
收藏
0有用+1
0
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算
软件名称
Golang
软件平台
WindowsmacOSLinux [2]
上线时间
2009年11月
最近更新时间
2023年2月1日 [3]
软件语言
Go
开发商
Google
软件授权
BSD license [4]
软件版本
1.20.1 [2]
软件大小
25 至 145 MB [2]

产生背景

播报
编辑
G危记o(又称Golang循棕厚翻殃协)是Google开发的一种静态强类型洒踏厦、编译型并发型,并具有垃圾回户阀晚收功能编程语言霉店元。
罗伯特·格瑞史莫(Robert Griesemer),罗布·派克(Rob Pike虹弃旬)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian L狱阿ance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在LinuxMac 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]

版本记录

播报
编辑
go1.20.1
go1.19.6
go1.20
go1.19.5
go1.19.4
go1.19.3
go1.19.2 [2]

运行环境

播报
编辑

Windows

Windows 7 or later, Intel 64-bit processor

macOS

Apple macOS (ARM64)
macOS 10.13 or later, Intel 64-bit processor

Linux

Linux 2.6.32 or later, Intel 64-bit processor [2]

撰写风格

播报
编辑
在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
  1. 1.
    每行程序结束后不需要撰写分号。
  2. 2.
    左大括号不能够换行放置。
  3. 3.
    if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。 [1]

编译器

播报
编辑
当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。 [1]