第六届字节跳动青训营 | 青训营

35 阅读2分钟

Go又称Golang,是Google 的 Robert Griesemer,Rob Pike 及Ken Thompson 开发的一种静态强类型、编译型语言。Go语言语法与C相近,但功能上有内存安全,GC(垃圾回收),结构形态及CSPstyle并发计算。 Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·翟尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了切片(Slice)型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护 在Go中有几项规定,当不匹配以下规定时编译将会产生错误:一、每行程序结束后不需要撰写分号;二、左大括号不能够换行放置;三、if判断式和for循环不需要以小括号包覆起来。 Go亦有内置gofmt江具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。 Goland主要特点是Go编译环境管理和切换管理和切换多个Go编译环境支持Go语言交叉编译。 当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的GO编译器。 官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。