问题标签 [zig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
64 浏览

zig - 如何释放 StringHashMap 的键?

我在尝试

但是出现编译错误

帮助将不胜感激!如果你遇到同样的情况可以分享,你会在搜索引擎中搜索什么,或者在 zig std 代码库中找到解决方案,也很棒!因为我仍然很难自己找出解决方案。谢谢!

0 投票
1 回答
92 浏览

zig - zig: if statement in print function produces wrong output

I have this code:

But it does not do what I want. The output is "0".

Could anyone tell me what happend? Thanks a lot.

0 投票
1 回答
82 浏览

pointers - 在 Zig 中将 [*]u8 转换为 []u8

当我有一个[*]u8指针和一个usize长度时,如何将指针转换为[]u8具有指定长度的切片?

0 投票
1 回答
71 浏览

zig - 在 ziglang 中将类型写入/传递到泛型函数的惯用方式

这是我的真实问题的一个非常简化的版本,但希望以简洁的方式展示我的问题。

我的问题是关于printKeys. 我必须将要打印的数据类型作为 comptime 参数传递,最简单的方法是@TypeOf在调用它时在地图上使用。

来自 C++,这似乎有点不雅,无法推断类型,尽管我也喜欢明确。

有没有一种更惯用的方式来在 zig 中拥有一个不需要在调用时使用 @TypeOf 的通用函数,或者有更好的方式来做到这一点?

0 投票
2 回答
49 浏览

zig - 什么文字表达式的类型为“void”?

在 Zig 0.9 中,我需要一个具有 type 的文字表达式,void用作 的上下文参数std.sort.sort,以便我的lessThan函数签名在语义上是准确的。有吗?

我尝试了这些但无济于事:

给予

我不想使用像const v: void = undefined;;这样的虚拟变量。这太冗长了。

作为参考,使用带有type 参数的函数void作为上下文参数,会给出如下错误消息std.sort.sortlessThanvoid

0 投票
2 回答
149 浏览

c++ - 是否可以使用标准 C++17在 C++ 编译器模式下使用 Zig 的设施?

我刚刚开始使用 Zig。我在 Windows 10 上使用 Zig 0.9.0。吸引我的功能之一是将 Zig 用作 C 或 C++ 编译器或交叉编译器。我已经成功地将 Zig 用于一些玩具程序,但是当我尝试使用 C++17 的标准库文件系统工具时,我的运气就耗尽了。这是一个最小的例子;

如果我尝试使用以下命令构建它;

我收到以下链接错误;

顺便说一句,很长一段时间我都没有走到这一步,结果发现我需要应用 -std=c++17 标志,直到那时我遇到了这个编译错误而不是链接错误;

最后我会注意到(经过一些谷歌搜索)我尝试传递一个 -lstdc++fs 标志,但也没有运气。在那种情况下,我得到了;

0 投票
2 回答
136 浏览

memory - Zig Lang 中正确的 BigInt Fibonacci 实现

我是 Zig Lang 的新手,我一直在寻找 Big Int Fibonacci 的现有实现,但无济于事。

因此,我查看了 Zig Lang 的源代码,特别是Big Int Source & Big Int Tests,以弄清楚如何使用 Big Int 功能,然后提出了所需的解决方案。

这是我在学习之前尝试衡量语言速度时遵循的一种传统。就像我做的那样:Go & Rust 的 Big Int Fibonacci Benchmark。(注意,我不必为这些语言编写解决方案!)

现在,这是我在 Zig 中的实现,供您仔细阅读:

如果我尝试将数字增加到 500,000,内存使用量将增加到 10 GB 以上。

我希望程序在没有内存泄漏的情况下运行 n =

我尝试了大多数分配器,page_allocator, ArenaAllocator, GeneralPurposeAllocator以加快进程并到达c_allocator. 至于怎么堵内存泄漏,我一点头绪都没有!

PS 我刚刚浏览了 ZigLang 和 ZigLearn 的文档以了解这一点。我没有掌握整个语言。所以请对我放轻松!

我用来构建应用程序的 PPS 命令:

系统信息:Mac Mini 2020,基本版本。

0 投票
1 回答
34 浏览

error-handling - 错误:预期类型 'type' -- 在尝试从错误集中返回错误时

我是 Zig 的新手,正在尝试了解错误处理和错误集的工作原理。如果我跑

我收到一个错误:

但是当我使用erro!void而不是erro.Oops!void作为函数返回类型时,测试通过了。为什么会这样?请帮忙。错误联合在语言中是如何工作的?谢谢你。

编辑:以上是修改后的功能。原来的功能是

来自这篇文章:https ://ziglearn.org/chapter-1/在“错误”部分。我想尝试一下,所以出于好奇,我做了上面的事情。

0 投票
1 回答
66 浏览

error-handling - 您可以在返回错误时重试 Zig 函数调用吗?

Zig 的文档显示了不同的错误处理方法,包括在调用堆栈中冒泡错误值、捕获错误并使用默认值、恐慌等。

我试图弄清楚如何重试提供错误值的函数。

例如,在下面的 ziglearn 代码片段中,如果用户输入的字符超过 100 个,是否可以重试 nextLine 函数?

0 投票
1 回答
41 浏览

json - 创建 json 写入流无法编译

我正在尝试在 zig 中使用 JSON,但我不明白为什么它不能编译:

错误: