zig专题

比较Zig、Rust和C++

比较Zig、Rust和C++这三种编程语言,我们可以从以下几个关键维度来进行: 设计理念 表格 语言 设计理念 Zig 简洁性、模块化、避免常见错误 Rust 内存安全、并发性、性能 C++ 性能优化、资源控制、可扩展性 内存安全 Zig通过严格的编译时检查、可选类型等机制,避免内存安全问题5。Rust通过所有权、借用、生命周期等机制,在编译时消除空指针解引用、数据竞争

Zig标准库:最全数据结构深度解析(2)

1.1 queue structures LinearFifo:缓冲区是FIFO内部的一个组成部分,其大小按照指定的尺寸设定。初始化时,这个缓冲区是以切片的形式传递给初始化函数的。为了动态管理缓冲区,使用了一个名为mem.Allocator的内存分配器。 fifo.zig - Zig standard libraryhttps://ratfactor.com/zig/stdlib-browse

实战:Zig 编写高性能 Web 服务(2)

1.1 编写 HTTP server 我们从python -m http.server 8000启动得到灵感,先确定好目标: 编写一个HTTP/1.1 http serverzig version 0.12.0 使用zig init搭建项目的前置工作你先自行搭建好,不会的翻看前面铺垫的章节熟悉zig的项目结构。 关键文件build.zig: const std = @impo

实战:Zig 编写高性能 Web 服务(1)

1.1  认识 std.http std.http 是 Zig 标准库中用于处理 HTTP 相关操作的类库。以我学习新的编程语言的经历来看,编写web程序是最常见的技术场景,所以熟练掌握 HTTP server/client 服务相关的编程知识是比较重要的。 std.http 主要包含以下API: Client: HTTP client implementation.Server: HTTP

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)

本文目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.3+4重构05.综合评价AVL5.1优点5.2缺点 06.代码注意插入算法删除算法完整代码:AVL.h 00.BBST——平衡二叉搜索树

AVL树笔记(一):zig-zag,insert,find,predecessor,successor

AVL树就是一棵平衡的二叉查找树。 其维护平衡的方式是:维护一个平衡因子h,即子树高度,如果左子树高度和右子树高度相差2,那么就旋转把它弄平衡。 这个二叉树明显不平衡,可以发现全部左偏,于是右旋。 右旋就是当前节点的左儿子 的 右儿子是当前节点。 如果当前节点有右儿子,怎么办? 那么把这个右儿子拆下来然后装在当前节点的左儿子上。 如图: 这个二叉树明显不平衡,可以发现全部

JPEG解码:反zig_zag变换

反量化模块就是对输入的64个数据进行重新排列,64个数据为8*8的数据,即8行8列。在进行编码的时候,DCT变换实际上是将图像从色彩域转向频频域,进过DCT变换的数据要经过量化,量化是实际上是对DCT系数的一个优化过程,它是利用人眼对高频部分不敏感的特性来实现数据的大幅度简化,具体操作时把频率域上的每个成分除以一个对于该成分的常数,去四舍五入接近的整数(已经在huffman解码模块实现反量化),

身为 Go 程序员,我为啥更喜欢用 Zig?

Zig 是一种比较新的编程语言,于 2016 年首次推出。Zig 社区将其描述为“一种用于维护稳固的、可优化和可重用软件的通用编程语言”。 看似一句简单的描述,却隐藏着远大的抱负。Zig被看作是可与C语言一较高下的编程语言。此外,Zig 也是一个编译器工具链,可以作为现有 C 编译器的替代品。 作为一个使用 Go 的程序员,我发现 Zig 及其工具链提出的主张很有意思。我在研究 Zig 时,发

Bun v1.0.3 发布,Zig 编写的 JavaScript 运行时

导读Bun 发布了其最新版本 v1.0.3,这是一个集 JavaScript 运行时、打包器、转译器和包管理器于一体的工具。这次的更新不仅修复了众多已知的问题,还引入了一系列令人期待的新功能。 首先,Bun 在这个版本中增加了对 TypeScript 的 emitDecoratorMetadata 的支持,这意味着开发者现在可以在 Bun 中无缝地使用 Nest.js 这样的框架。Nest.js