文章
我發過的所有文章。
[Day-30]完賽,再談談 Zig
總算是到最後一天了。在先前的內容中,我們從安裝 Zig 開始,一步步介紹 Zig 的各種基本語法和特性,我也是一邊寫文章、一邊寫程式一同學習 Zig。 Zig 作為一個現代化的語言,提供了諸如基於遍歷對象的 for 迴圈、模組化的 import 能力,靈活的 switch 模式配對,來讓我們可以專注在功能,而不是麻煩的語法。 Zig 作為一個面向低階應用的語言,提供了 comptime、packed、自訂長度數值型別,讓我們可以更方便地寫出高效率的程式。 Zig 作為 C 的取代者,保留了直接操作記憶體的指標、asm volatile 語法以直接嵌入組合語言,已經方便與 C 接合的 ABI 支援。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-29]Zig:依賴套件管理
Zig 使用一個 build.zig.zon 來管理專案,其中也包含使用第三方依賴套件,這個有點類似 JavaScript 的 package.json。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-28]Zig:建置 build.zig
Zig 使用一個 build.zig 來配置建置,有點類似 Makefile。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-27]Zig:進階迴圈
先前已經介紹過基本的 for 和 while 迴圈用法,這裡來介紹一些更進階的功能和語法。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-26]Zig:迭代器(Iterator)
對於常寫 Python 的人應該很熟悉迭代器,在處理一些資料時比單純的陣列好用。Zig 通常使用擁有 next() 方法的 struct 來代表迭代器。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-25]Zig:標籤 Labeled
有時候會需要寫一些比較複雜的多層迴圈程式,但這時如何要使用 break 或 continue 時會沒辦法控制要對哪一層迴圈進行。對於這種情況,只要為迴圈打上標籤,就可以明確指定了。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-24]Zig:編譯期 Comptime
comptime 是 Zig 的一大特色,使用它可以將許多運算帶到編譯期,從而提高運行時的效率。這個功能類似 C++11 的 constexpr 和 C++20 的 consteval。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-23]Zig:Hash Maps 鍵值對
Hash Map 是一種 key-value pair(鍵值對),類似於 Rust 的 HashMap<K, V> 或 Python 的 dict。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-22]Zig:ArrayList
ArrayList 是一種動態的數組容器,可以儲存相同型別、不定長度的資料(執行期分配),類似 Rust 中的 Vec<T>。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig
[Day-21]Zig:分配器(Allocator)
Allocator 是 Zig 標準庫提供的功能,用來分配記憶體,尤其是涉及動態分配的情況。
發佈Zig 入門指南(鐵人 24)#教學
#程式
#Zig