golang基础:青训营第一次课程|青训营笔记

97 阅读4分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记。

1、go语言进阶

1.1 go语言的优势

go语言支持并发编程,也就是说它可以使用不同的线程在同一时间处理多个任务,可实现大并发处理,从而使得运行非常高效,可以充分发挥计算机多核的优势。go具有非常丰富的标准库、垃圾回收机制以及快速编译等优点。

1.2 线程与协程

线程是操作系统调度执行的最小单位,也被称为轻量级进程,是在内核态执行的;协程是一种比线程更加轻量级的存在,它不是被操作系统内核所管理而是有程序所控制的,也就是在用户态执行。协程是由程序自身控制的而且不需要多线程的锁机制,所以具有极高的执行效率。

1.3 Goroutine

go在语言级别支持协程,称之为Goroutine,它的切换管理不依赖于系统的进程和线程,而是在go运行的时候统一调度。 1.4 go语言的应用领域 go语言的应用非常广泛,可以用于区块链技术、后端服务器应用以及云计算和云服务开发等领域。

2、go语言的基础语法

变量 go里面的变量类型、优先级和使用方法与C++类似。

  • 1.fmt包用于输入输出字符串,鼠标可悬浮于函数上,会显示函数的位置以及里面包含的相关函数;
  • 2.变量 go里面的变量类型、优先级和使用方法与C++类似;可用var(自动识别数据类型,也可以显示声明变量类型),变量名 :=值 完成声明;const根据上下文自动确认类型。
  • 3.if else语句类似于C++,不同点是if后面的条件无括号(如有会被编译器自动去掉)以及if的函数体必须要有大括号。
  • 4.go里面只有for循环,for无循环条件代表死循环,也可以类似于C++使用,且循环条件可以任意省略,可以使用continu/break。
  • 5.switch类似于C++,不同的是go里面的break可以省略且只执行符合条件的分支,以及支持任意类型。
  • 6.数组长度固定var s[]类型,切片的长度可以任意更改且使用方法类似于数组,可以用s:=make([]类型,长度)创建,s=append(s,"")追加值但是必须返回一个值给切片,copy(,)拷贝数组或切片,s[2:5]是输入索引2-4的值且不支持复数索引
  • 7.map函数(哈希或者字典),m:=make(map[key的类型]值的类型),方括号读写map的k-v对且读写时用r,ok:=m[key]确认key是否存在,delete可删除k-v对,map的读写是无序的。

3、Windows系统安装VS Code以及go语言开发环境搭建

3.1 安装VS Code

下载及安装VS Code软件: 下载地址:code.visualstudio.com/Download 下载后按照一般的软件安装步骤一步步地安装即可,比较简单就不加赘述了。

3.2 go语言开发环境搭建

其实,VS Code只是一个文本编辑器,我们还要搭建好go进行编译和运行源代码的开发环境,而且网上的教程也比较多,在此就简述一下主要的安装步骤。 第一步,官网去下载软件开发工具包,选择相应的版本下载即可。 官方地址:studygolang.com/dl 第二步,解压并安装SDK,安装后在cmd运行 go version,如果显示软件的版本号极为安装成功。 第三步,配置go环境变量。右击“我的电脑”->属性->高级系统设置->高级->环境变量->新建系统变量。添加的环境变量如下: 新建:GOROOT C:\Software\go

  • 编辑:Path,添加“;%GOROOT%\bin”*
    Path环境变量系统自带,不需要新建增加内容即可;同时增加的“%GOROOT%”路径表示引用上一步添加的变量。 GOPATH D:\Microsoft VS Code\Goproject 其中,GOPATH表示以后Go项目存放的路径,即工作目录。

4、总结与感悟

希望这篇基础性文章对您有帮助,写得不好的地方还请海涵。也非常感谢上课的老师,讲的非常详细,同时还参考了一些大佬的文章和博客,自己还只是刚刚入门的菜鸟,需要向他们学习的地方还有很多,一定要好好加油呀!!!