Go语言基础 | 青训营笔记

418 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

一、go概述

1、go语言的特点

  • 高性能、高并发
  • 语法简单、学习曲线平缓
  • 丰富的标准库
  • 完善的工具链
  • 静态链接
  • 快速编译
  • 跨平台
  • 垃圾回收

2、哪些地方用到go语言

现在大部分的互联网大厂(字节跳动、google、腾讯、facebook、美团、七牛云、滴滴、哔哩哔哩、百度等)都在大量使用go语言。几乎很多的云原生组件都是用go语言实现的。

3、字节跳动为什么全面用go语言

  • 最初使用的 Python,由于性能问题换成了 Go
  • c++ 不太适合在线 Web 业务
  • 早期团队非 Java 背景
  • 性能比较好
  • 部署简单、学习成本低
  • 内部 RPC 和 HTTP 框架的推广

二、go快速入门

1、开发环境

安装Golang语言

image.png

配置Golang的编辑器

vscode 安装完成之后还要安装golang的插件

Goland(推荐)收费软件,学生可以申请免费使用

2、基础语法

hello World

image.png

变量
  • 字符串(内置类型,可以直接用+拼接字符串,也可以=来比较两个字符串)
  • 整型
  • 浮点型
  • 布尔型

image.png 可以var隐式声明,会自动按照类型来匹配对应的变量类型。也可以显示的声明自己说明要定义的变量类型,也可以f:=这样声明

大部分变量的使用和优先级和c很类似

常量:常量就是把var改为const(和js很类似)

if else

image.png if else写法和c和类似,if的判断条件不用写括号,满足条件的执行是必须写括号的。

循环

image.png 在golang里面没有while循环和do while循环,只有一个for循环,条件说明都不行就代表死循环,也有continue和break来跳过本次和退出

switch

image.png 在c里面,如果switch的每个case如果不写break会默认继续往下一直执行,但是go不会,他默认可以不用写。

数组

image.png 真实环境中,用的很少数组,因为长度不可变,一般用切片。

切片(重点)

image.png 切片不同于数组,他的优点是可变长度的

map

image.png golang里面的map是完全无序的,不会按照插入顺序来输出

range

image.png 用来遍历数组和map的

函数

image.png go的函数返回的变量类型是后置的。go的返回值是可以返回多个值的,如第三个例子:第一个是返回的结果值,第二个是返回的错误信息。

指针

image.png

结构体

image.png