An open, technical and introductory book for the Zig programming language 📚📖
当前访问频次受限,请登录后继续访问
Zig入门
你好!这是官方的《Zig入门:基于项目的书籍》的仓库,由Pedro Duarte Faria撰写。 想要了解更多关于这本书的信息,请查看下面的关于这本书部分。 你可以在网络浏览器中阅读这本书的当前版本:https://pedropark99.github.io/zig-book/。
本书采用现代、可重现的出版堆栈精心制作,利用了以下工具的强大功能:
本书的核心内容是使用Quarto出版系统构建的
并结合了一小部分R代码(zig_engine.R),负责调用Zig编译器来编译和运行Zig代码示例。
支持本项目!
如果你喜欢这个项目,并希望支持它,你可以购买本书的PDF、电子书或实体副本,无论是在Amazon还是在Leanpub:
- Amazon:https://www.amazon.com/dp/B0DJYMDRLP
- Leanpub:https://leanpub.com/introductiontozigaproject-basedbook
直接捐赠
你也可以通过以下方式直接向项目作者捐赠:
- PayPal捐赠。
- Revolut。
这些是直接支持项目作者的好方法,有助于促进更多此类内容的创作,并使作者能够继续为社区编写有帮助的工具和材料。
PayPal
Revolut
你可以通过Swift Payment以及以下银行和Swift详情发送资金:
Recipient: Pedro Duarte Faria
BIC/SWIFT Code: REVOSGS2
Account number: 6124512226
Name and address of the bank: Revolut Technologies Singapore Pte. Ltd, 6 Battery Road, Floor 6-01, 049909, Singapore, Singapore
Corresponding BIC: CHASGB2L
若您已拥有 Revolut 账户,可扫描以下二维码:
http://revolut.me/pedroduartefaria
关于本书
本书是一份开源(即开源项目)、技术性入门书籍,专为 Zig 编程语言 而作。Zig 是一种新的通用且底层编程语言,旨在构建最优且健壮的软件。
本书官方仓库:https://github.com/pedropark99/zig-book。
本书面向初学者和经验丰富的开发者。它通过小型且简单的项目(类似于 Eric Matthes 的著名作品《Python 快速入门》)探索 Zig 的精彩世界。其中一些项目包括:Base64 编码器/解码器、HTTP 服务器和图像过滤器。
在阅读本书的过程中,您将学到:
- 语言语法,以及它与 C、C++ 和 Rust 的对比。
- 数据结构、内存分配器、文件系统和 I/O。
- 作为处理空值的新范式——可选类型。
- 如何测试和调试 Zig 应用程序。
- 错误作为值,以及如何处理它们。
- 如何使用内嵌于语言中的构建系统构建 C 和 Zig 代码。
- Zig 与 C 的互操作性。
- 基于线程和 SIMD 的并行性。
- 更多内容。
如何构建本书
首先,您需要关注项目的依赖项。本书使用以下软件构建:
- Zig 编译器,负责编译本书中的大部分代码示例。
- R 编程语言,提供了一些有用的工具,特别是
knitr和rmarkdown,负责收集书中展示的代码示例,并将它们发送至 Zig 编译器进行编译和执行,同时收集结果以包含在书中。 - Quarto 发布系统,负责编译书籍、创建内部链接、引用、章节结构以及书籍的 HTML 内容。它是通过使用强大的 Pandoc 并加入 Quarto 实现的一些额外功能来完成这些工作的。
因此,在当前计算机上安装这三个软件(Zig、R、Quarto)是构建本书的第一步。您可以选择以下两种策略之一:
- 您可以手动安装这三个软件(您可以点击以上超链接找到每个软件的安装说明)。
- 或者,您可以使用
flake.nix文件中声明的 Nix Flake 来创建一个已预装这些软件的可复现环境。
手动构建本书
如果您决定手动安装本书的依赖项,请遵循上述超链接中的“安装说明”,在安装完三个部分(Zig、R 和 Quarto)后,按照此处指定的下一步说明操作。
安装 R 包
在安装了上述三个软件之后,您应运行 dependencies.R R 脚本,以安装本书中使用的 R 包。在终端中运行以下命令,您应该就能顺利完成。
注意:如果您使用的是 Linux 或 MacOS,这个命令可能需要一些时间来运行,因为每个依赖项都会从源代码编译。在 Windows 中,这通常不需要太长时间,因为通常有预编译的二进制文件可用。
Rscript dependencies.R
渲染书籍
如果您的计算机上正确安装了Quarto, 那么您应该能够通过在终端中执行以下命令来构建书籍。
quarto render
使用 Nix Flake 构建书籍
若您选择使用 Nix Flake 来搭建一个附带必要依赖项的环境,那么您需要打开一个终端,并在项目根目录执行 nix develop 命令:
nix develop
使用此命令后,Nix 将下载必要的软件包和库,然后创建一个新的 bash 会话,该会话指向一个包含这些软件包和库的新环境。在由 Nix 创建的这个新的 bash 会话中,您只需执行 quarto render 命令。该命令将启动 Quarto,并自动为您构建书籍:
quarto render
Zig 编译器的查找方式
本书中使用了一些 R 代码(zig_engine.R),用于收集书中散布的 Zig 代码示例,并将它们发送到 Zig 编译器,以便编译和执行。
然而,为了完成这一操作,这段 R 代码需要找到您计算机上安装的 Zig 编译器。这一搜索过程分为两个阶段进行。
首先,它使用 Sys.which() 函数 来查找您计算机上 Zig 编译器的路径,这只是 R 对 which 命令行工具的接口。
这是一种快速且简单的方法,但它在某些情况下不起作用,特别是当您的 Zig 编译器未安装在计算机上的“标准位置”时。因此,采用了第二种策略,即遍历 PATH 环境变量。
它获取您的 PATH 环境变量的值,并遍历该变量中列出的目录,尝试在其中找到 Zig 编译器。这种方法比第一种慢得多,但更有保证能够成功。
许可
版权 © 2024 Pedro Duarte Faria。本书遵循知识共享 CC-BY 4.0 国际公共许可(Creative Commons Attribution 4.0 International Public License)。

