GO 语言

Go的起源

        Go语言(Golang)是由Google开发,于 2009 年正式对外发布的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。

        目前有非常多的公司也在使用golang

Google

        作为创造了Go语言的 google 公司,当然会力挺Go语言了。Google 有很多基于 Go 开发的开源项目,比如 kubernets,docker。

Facebook

        Facebook 也在使用Go语言,为此他们还专门在 Github 上建立了一个开源组织 facebookgo。

腾讯

        腾讯在 15 年就已经做了 Docker 万台规模的实践。因为腾讯主要的开发语言是 C/C++ ,所以在使用Go语言方面会方便很多,也有很多优势,不过日积月累的 C/C++ 代码很难改造,也不敢动,所以主要在新业务上尝试使用 Go。

百度
        百度主要在运维方面使用到了Go语言,其次就是百度消息通讯系统的服务器端也使用到了Go语言。

京东
        京东云消息推送系统、云存储,以及京东商城的列表页等都是使用Go语言开发的。

小米

        小米对Go语言的支持,在于运维监控系统的开源,此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Go语言。

360
        360 对Go语言的使用也不少,比如开源的日志搜索系统 Poseidon,还有 360 的推送团队也在使用Go语言。

Go的创始人

  1. 肯·汤普逊(Ken Thompson) 贝尔实验室 Unix 团队成员,C语言、Unix 和 Plan 9 的创始人之一,在 20 世纪 70 年代,设计并实现了最初的 UNIX 操作系统,仅从这一点说,他对计算机科学的贡献怎么强调都不过分。他还与 Rob Pike 合作设计了 UTF-8 编码方案。

  2. 罗布·派克(Rob Pike) Go语言项目总负责人,贝尔实验室 Unix 团队成员,除帮助设计 UTF-8 外,还帮助开发了分布式多用户操作系统 Plan 9、Inferno 操作系统和 Limbo 编程语言,并与人合著了《The Unix Programming Environment》,对 UNIX 的设计理念做了正统的阐述。

  3. 罗伯特·格瑞史莫(Robert Griesemer) 就职于 Google,参与开发 Java HotSpot 虚拟机,对语言设计有深入的认识,并负责 Chrome 浏览器和 Node.js 使用的 Google V8 JavaScript 引擎的代码生成部分。

Go的特性

        golang是一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。

语法简单

        Go语言的语法规则严谨,没有歧义,更没什么黑魔法变异用法。任何人写出的代码致,这使得Go语言简单易学。放弃部分“灵活”和“自由”,换来更好的维护性。都基本一

并发型

        Go语言从根本上将一切都并发化,运行时用 Goroutine 运行所有的一切,包括 main.main 入口函数。

垃圾回收

        Go的自动回收内存的特性,使得Go程序开发者可以更加专注于代码的效率,很大程度上避免了内存的泄漏。

静态强类型

        静态类型语言:在编译期间确定的或者说运行之前确定的结构,编写代码的时候要明确确定变量的数据类型。

        强类型语言:一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型。

编译型语言

        编译型语言在程序在执行之前需要一个专门的编译过程,通过编译器把程序编译成为可执行文件,再由机器运行这个文件,运行时不需要重新翻译,直接使用编译的结果就行了。

标准库

        go语言无论论是编译、格式化、错误检查、帮助文档,还是第三方包下载、更新都有对应的工具。

Go的使用领域

鉴于Go语言的特点和设计的初衷,从以下几个方面来分析Go语言擅长的领域:

        1.在服务器编程方面,Go语言适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;
        2.网络编程方面,Go语言广泛应用于 Web 应用、API 应用、下载应用等;
        3.此外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用 Go 开发。

Go的优劣

        1.优势:Go语言是集多编程范式之大成者,体现了优秀的软件工程思想和原则,其特性可以使开发者快速地开发、测试和部署程序,大大提高了效率。Go语言对于当前大多数主流语言来讲,最大的优势在于具有较高的生产效率、先进的依赖管理和类型系统,以及原生的并发计算支持。因此,Go语言自发布以来就受到了各个领域开发者的关注和青睐。

        2.劣势:从程序运行速度的角度来看还不及 C,从第三方库的角度来看,Go语言的库数量还远远不及其他几门主流语言。

        虽然Go语言还有一些瑕疵,但从整体来看,它已经是一门非常优秀的通用编程语言了。并且,Go语言在今后的发展上会关注性能、可靠性、可移植性和一些功能增强。

Go的数据类型


布尔型:布尔型的值只可以是常量 true 或者 false。
数字类型:整型 int 和浮点型 float。Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
字符串类型:字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
派生类型:(a) 指针类型(Pointer)(b) 数组类型© 结构化类型(struct)(d) Channel 类型(e) 函数类型(f) 切片类型(g) 接口类型(interface)(h) Map 类型

golang

和C语言相似,go语言的基本组成有:

1.包声明:编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如package main

2.引入包,其实就是告诉Go 编译器这个程序需要使用的包,如import "fmt"其实就是引入了fmt包。

3.函数:和c语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数。

4.变量:Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

5.语句/表达式:在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。

6.注释:和c语言中的注释方式相同,可以在任何地方使用以 // 开头的单行注释。以 /* 开头,并以 */ 结尾来进行多行注释,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。

Go语言中声明变量以var关键字开头,变量名放中间,变量类型放在最后。

var 变量名 变量类型

var a int

:=符号

a := 1
//相当于
var a int
a = 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值