什么是Go
Posted 雾晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是Go相关的知识,希望对你有一定的参考价值。
Go的简介
Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻(年纪轻轻学什么Go)的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。
Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。
==Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)==的概念来实现多态性。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。可以说Go语言是一门混合型的语言。
Go 是编译型语言
Go 使用编译器来编译代码。编译器将源代码编译成二进制(或字节码)格式;在编译代码时,编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件。要创建并运行 Go 程序,程序员必须执行如下步骤。
使用文本编辑器创建 Go 程序;
保存文件;
编译程序;
运行编译得到的可执行文件。
这不同于 Python、Ruby 和 javascript 等语言,它们不包含编译步骤。Go 自带了编译器,因此无须单独安装编译器。
为什么学习Go
如果你要创建系统程序,或者基于网络的程序,Go语言是很不错的选择。作为一种相对较新的语言,它是由经验丰富且受人尊敬的计算机科学家设计的,旨在应对创建大型并发网络程序面临的挑战。
在Go语言出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言呢?显然,Go语言在这 3 个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。
Go语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发可以在 Windows 上运行的应用程序。这是第一门完全支持 UTF-8 的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的 UTF-8 编码。Go语言做到了真正的国际化!
Go的应用场景
鉴于Go语言的特点和设计的初衷,Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还适用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。
- 服务器编程
- 微服务
- 云平台
- Web
- 区块链
- 分布式
国内大厂开源的Golang项目
- 字节跳动:kitex,开源
- 滴滴:有自己的一套微服务框架,未开源
- 腾讯:TarsGo,开源,并且是Linux基金会项目
- B站:kratos,开源
- 斗鱼:Jupiter,开源
- 好未来:go-zero,开源
- 阿里:dubbo-go,开源
- 华为:Go Chassis,开源
- 知乎:内部改用go重构后端
以上是关于什么是Go的主要内容,如果未能解决你的问题,请参考以下文章