问题标签 [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.
zig - 如何释放 StringHashMap 的键?
我在尝试
但是出现编译错误
帮助将不胜感激!如果你遇到同样的情况可以分享,你会在搜索引擎中搜索什么,或者在 zig std 代码库中找到解决方案,也很棒!因为我仍然很难自己找出解决方案。谢谢!
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.
pointers - 在 Zig 中将 [*]u8 转换为 []u8
当我有一个[*]u8
指针和一个usize
长度时,如何将指针转换为[]u8
具有指定长度的切片?
zig - 在 ziglang 中将类型写入/传递到泛型函数的惯用方式
这是我的真实问题的一个非常简化的版本,但希望以简洁的方式展示我的问题。
我的问题是关于printKeys
. 我必须将要打印的数据类型作为 comptime 参数传递,最简单的方法是@TypeOf
在调用它时在地图上使用。
来自 C++,这似乎有点不雅,无法推断类型,尽管我也喜欢明确。
有没有一种更惯用的方式来在 zig 中拥有一个不需要在调用时使用 @TypeOf 的通用函数,或者有更好的方式来做到这一点?
zig - 什么文字表达式的类型为“void”?
在 Zig 0.9 中,我需要一个具有 type 的文字表达式,void
用作 的上下文参数std.sort.sort
,以便我的lessThan
函数签名在语义上是准确的。有吗?
我尝试了这些但无济于事:
给予
我不想使用像const v: void = undefined;
;这样的虚拟变量。这太冗长了。
作为参考,使用带有type 参数的函数void
作为上下文参数,会给出如下错误消息std.sort.sort
lessThan
void
c++ - 是否可以使用标准 C++17在 C++ 编译器模式下使用 Zig 的设施?
我刚刚开始使用 Zig。我在 Windows 10 上使用 Zig 0.9.0。吸引我的功能之一是将 Zig 用作 C 或 C++ 编译器或交叉编译器。我已经成功地将 Zig 用于一些玩具程序,但是当我尝试使用 C++17 的标准库文件系统工具时,我的运气就耗尽了。这是一个最小的例子;
如果我尝试使用以下命令构建它;
我收到以下链接错误;
顺便说一句,很长一段时间我都没有走到这一步,结果发现我需要应用 -std=c++17 标志,直到那时我遇到了这个编译错误而不是链接错误;
最后我会注意到(经过一些谷歌搜索)我尝试传递一个 -lstdc++fs 标志,但也没有运气。在那种情况下,我得到了;
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,基本版本。
error-handling - 错误:预期类型 'type' -- 在尝试从错误集中返回错误时
我是 Zig 的新手,正在尝试了解错误处理和错误集的工作原理。如果我跑
我收到一个错误:
但是当我使用erro!void
而不是erro.Oops!void
作为函数返回类型时,测试通过了。为什么会这样?请帮忙。错误联合在语言中是如何工作的?谢谢你。
编辑:以上是修改后的功能。原来的功能是
来自这篇文章:https ://ziglearn.org/chapter-1/在“错误”部分。我想尝试一下,所以出于好奇,我做了上面的事情。
error-handling - 您可以在返回错误时重试 Zig 函数调用吗?
Zig 的文档显示了不同的错误处理方法,包括在调用堆栈中冒泡错误值、捕获错误并使用默认值、恐慌等。
我试图弄清楚如何重试提供错误值的函数。
例如,在下面的 ziglearn 代码片段中,如果用户输入的字符超过 100 个,是否可以重试 nextLine 函数?
json - 创建 json 写入流无法编译
我正在尝试在 zig 中使用 JSON,但我不明白为什么它不能编译:
错误: