Go 语言基础 - 基础语法|青训营笔记

94 阅读2分钟

Go 语言基础 - 基础语法|青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天,本节课主要介绍了Golang的相关背景知识与特点以及Golang的基础语法,并介绍了三个实战项目。

1. Golang的背景知识

1.1 Golang的简介

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译并发型语言。

1.2 Golang的优点

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

基于此上优点,Golang广泛用于国内外各大互联网公司,如字节跳动、腾讯、美团、滴滴、百度、谷歌、脸书等公司。

2. 基础语法

在课程中,讲师为我们介绍了go语言中的各种基础语法,其中包括变量类型、if-else语句、循环、switch语句、数组、切片、map、range、函数、指针、结构体、结构体方法、错误处理、字符串操作、字符串格式化、JSON处理、时间处理、数字解析、以及进程信息。

其中,值得注意的是

  • if-else语句switch语句与C相比没有括号,且Golang中的if后面必须接大括号,switch可以省略break,且功能更加强大,可以使用任意的变量类型。
  • Golang中只有唯一的一种for循环,用法与C类似。
  • 切片不同于数组,可以任意改变长度,操作更加丰富。
  • map使用最频繁,可用make创建一个空map,用到的两个类型一个为key的类型,另一个为value的类型,注意遍历map时是完全无序的。
  • range可快速遍历slice或map,对于数组会返回索引值与对应位置的值。
  • 对于函数来讲,Golang的变量类型是后置的,且函数原生支持返回多个值。
  • go语言的错误处理用一个单独的返回值来传递错误信息,能够清晰的知道了那个函数返回了错误。

3.实战

实战项目分别介绍了猜谜游戏、在线词典与SOCKS5代理的内容

(1)在猜谜游戏项目中生成随机数时应选取种子,同时也要注意实现游戏的循环。

(2)在在线词典项目中学习到了抓包的相关知识。

(3)在SOCKS5项目中了解了其用途与原理,了解了TCP echo server,SOCKS5代理的四个阶段。

4.个人总结

本节课的SOCKS实战项目代码及原理比较复杂,不易理解,在课后仍需花费时间进行梳理。

5 引用参考

[GO语言基础]((81条消息) [GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及_Eastmount的博客-CSDN博客_golang语言)