一、Go语言简介
(一)Go语言的几大优势
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
按照我的理解,正是这些独特的优势才使得Golang在当今时代不断扩大影响力,吸引越来越多的人与企业去选择、应用它。
(二)字节跳动选择Go语言的缘由
- 最初使用的 Python,由于性能问题换成了Go2.C++不太适合在线Web 业务
- 早期团队非Java背景
- 性能比较好
- 部署简单、学习成本低
- 内部RPC和HTTP框架的推广
字节跳动使用的Go语言的原因也是许多企业选择Go语言的原因。我认为Go语言的普及与使用已经是大势所趋。
二、Go语言基础语法
(一)变量
go语言是强类型语言,每一个变量都有它自己的变量类型。常见的变量类型包括字符串、整数、浮点型、布尔型等。这些变量与其他主流语言如C++、JAVA中对变量的定义相差不大,可以直接套用理解。
与其他语言不同的是Go对变量的声明方法。变量的声明有两种方式,一种是通过var name 变量类型 =""这种方式来声明变量,另一种则是 “变量 := 值”这种方式来声明变量。
对数组的定义也与其他语言相差不大,加之在Go语言中有着另一种语法“切片”在很多时候能够替代数组,所以在此便不一一赘述。
如果所定义的变量是常量,那么只需将 var 改为 const 即可。
(二)基础语句
在Go语言中,有着许多和其他语言相差不大的基础语句,如if else 语句,for 循环语句,switch 语句等。
这三种语句与其他语言差距也使小之又小,在Go中也可使用break,continue跳出循环,也可以通过不设置for循环的条件来构造一个死循环。不同的是,Go的Switch语句中不需要添加break来阻止继续向下执行其他情况。
(三)切片、map与range
切片slace可以在Go语言中通过make语句来进行定义,它可以理解成一种能够随意增加长度的数组,这是其优于数组的一点。当执行append 操作的时候,如果容量不够的话,会扩容并且返回新的slice。
在其他编程语言里面,map可能可以叫做哈希或者字典。map是实际使用过程中最频繁用到的数据结构。是完全无序的,遍历的时候不会按照字母顺序,也不会按照插入顺序输出,而是随机顺序。
range是一种遍历语句。range遍历的时候,对于数组会返回两个值,第一个是索引,第二个是对应位置的值。
三、总结
以上是我对第一节课的理解,Golang最大的优势便是其简单易懂的语法,本文对其语法尚未介绍完全,我自己对这些语法了解也不够深入,如对map的使用。
在学习一门新的语言时,光听、记是完全不够的,还需要去实验去运行代码,这样才能真正地理解,从而熟练地掌握。