#小白学Go-03# 跟随B站视频再学习

作者通过观看B站幼麟实验室的Go语言教程,发现其不仅包含基础概念,还深入讲解了内存分配、函数调用栈、defer语句和垃圾回收(GC)等内容。虽然有些部分挑战了作者的初学者水平,但视频帮助建立了坚实的基础并激发了进一步学习的兴趣。
摘要由CSDN通过智能技术生成

看完Go指南之后感觉懂的还是太浅显了,于是想着找一些课程跟着再学习学习。搜集了一圈,看到有不少人推荐B站幼麟实验室的视频,于是找来看一看。

我本人是十分喜欢这种图解的方式的,感觉特别形象,而且有逻辑性,对理解很有帮助。但是就是需要多反复看几遍,因为图已经是一层抽象过后的表达了,因此有一些意思需要对着图看一会才能get到。

总体评价

一开始看的时候还以为是类似Go语言指南之类的简单的教程,后面越看越不对劲,怎么讲到了栈和堆上内存的分配,还讲到了内部的函数实现。再往后看才发现,这是需要有一定基础的。

我其实对代码如何编译,内部如何实现,内存如何分配是一个彻头彻尾的小白,不过也还是硬着头皮看完了整个Golang系列的视频,不懂的地方反复拉进度条看。看完深感UP主的厉害,能够从内部原理出发讲解的这么细致清晰,让我深有收获。不过具体的知识细节我还需要进一步去理解,暂时就不写上来了,就大概说说我印象比较深刻的地方吧。

函数调用栈

之前准备面试的时候,会读到函数调用的时候局部变量保存在栈中,代码中主动分配的内存空间在堆中分配。当时只是记住了,但是并没有深究。这次看到这个UP主的视频才第一次理解了它们之间的关系,一下子打通了我之前关于函数调用,局部变量与全局变量,传参的值与指针方面的知识。

知道变量是如何在栈和堆上分配了,有助于理解一些看起来很绕的代码,比如之前在Go指南中遇到过了返回值是一个函数,或者存在闭包的情况。

defer

我见少知浅,在学习Go语言中才第一次接触到defer这样的语句逻辑。刚接触的时候,我觉得这是一个很新奇的逻辑,但是不知道具体有什么用,然后有感觉延迟是一个搞不好很危险的设计,不知道在等待延迟的这段时间内会不会又发生什么。

视频中同样是从堆和栈的分配角度开始讲解,还涉及到内部的函数,以及defer链表,并且对比了不同版本的Go语言中的实现。虽然可能版本有点老,但是原理差不多。

GC和调度

这个对于我来说则是更加复杂了。之前我完全没接触过这方面的只是,但是视频起码让我有了一点大体上的理解。视频有一个好处就是,它不是一上来就讲目前的应用方案是怎么样的,而是会按照逻辑讲到一个技术的演化过程,让我知道为什么要这么干。

可能读者看到我这篇记录也会觉得我其实还并不是特别理解视频里说到的知识,因为目前我还无法很自信很细致的自己把里面的知识收获讲出来,目前只是给了我一个大概的印象,我还需要继续去上手学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值