这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
一、go概述
1、go语言的特点
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
2、哪些地方用到go语言
现在大部分的互联网大厂(字节跳动、google、腾讯、facebook、美团、七牛云、滴滴、哔哩哔哩、百度等)都在大量使用go语言。几乎很多的云原生组件都是用go语言实现的。
3、字节跳动为什么全面用go语言
- 最初使用的 Python,由于性能问题换成了 Go
- c++ 不太适合在线 Web 业务
- 早期团队非 Java 背景
- 性能比较好
- 部署简单、学习成本低
- 内部 RPC 和 HTTP 框架的推广
二、go快速入门
1、开发环境
安装Golang语言
配置Golang的编辑器
vscode 安装完成之后还要安装golang的插件
Goland(推荐)收费软件,学生可以申请免费使用
2、基础语法
hello World
变量
- 字符串(内置类型,可以直接用+拼接字符串,也可以=来比较两个字符串)
- 整型
- 浮点型
- 布尔型
可以var隐式声明,会自动按照类型来匹配对应的变量类型。也可以显示的声明自己说明要定义的变量类型,也可以f:=这样声明
大部分变量的使用和优先级和c很类似
常量:常量就是把var改为const(和js很类似)
if else
if else写法和c和类似,if的判断条件不用写括号,满足条件的执行是必须写括号的。
循环
在golang里面没有while循环和do while循环,只有一个for循环,条件说明都不行就代表死循环,也有continue和break来跳过本次和退出
switch
在c里面,如果switch的每个case如果不写break会默认继续往下一直执行,但是go不会,他默认可以不用写。
数组
真实环境中,用的很少数组,因为长度不可变,一般用切片。
切片(重点)
切片不同于数组,他的优点是可变长度的
map
golang里面的map是完全无序的,不会按照插入顺序来输出
range
用来遍历数组和map的
函数
go的函数返回的变量类型是后置的。go的返回值是可以返回多个值的,如第三个例子:第一个是返回的结果值,第二个是返回的错误信息。