多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 理解 Go 的内部构造 你在上一章中学到的所有 Go 功能都非常方便,你将一直使用它们。但是,更有价值的是看到和理解这背后发生的事情以及 Go 在幕后的操作方式。 在本章中,你将学习 Go 垃圾收集器及其工作方式。此外,你还将了解如何从 Go 程序中调用 C 代码,这在某些情况下可能是必不可少的。当然,因为 Go 是一种非常强大的编程语言,你可能不需要经常使用此功能。 此外,你还将学习如何从 C 代码中调用 Go 函数,以及如何使用`panic()`和`restore()`函数和`defer`关键字。 本章将会涵盖: - Go 编译器 - Go 的垃圾回收是如何工作的 - 如何检查垃圾收集器的操作 - 从 Go 代码调用 C 代码 - 从 C 代码调用 Go 代码 - `panic()` 和 `recover()` 函数 - `unsafe` 包 - 方便但棘手的`defer`关键字 - `strace(1)` Linux 工具 - `dtrace(1)` 实用程序,可以在 FreeBSD 系统(包括 macOS Mojave)中找到 - 查找有关你的 Go 环境的信息 - Go 创建的节点树 - 从 Go 创建 WebAssembly 代码 - Go 汇编器