问题标签 [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 投票
2 回答
47 浏览

zig - 使用 ArrayList 和 Slice 时输出中的不确定性

我正在与 Zig 一起研究 Advent of Code,现在是第 3 天。我已经上传了我编写的代码。谜题描述和代码在这里:https ://github.com/secondspass/adventofcodeday3 。代码在day3_part2.zig,输入文件是day3.in。我用zig run day3_part2.zig.

运行代码时,我得到两个输出之一。函数中的以下整数溢出co2ScrubberRating

或者我会得到以下输出,其中第二行的二进制数是co2ScrubberRating函数的输出,是一个看似随机的数。

每次运行zig run day3_part2.zig.

我将相同的 ArrayList.items 切片和分配器传递给oxygenGeneratorRatingco2ScrubberRating。如果我只在主函数中运行其中一个函数(即我注释掉其中一个),则会为该函数生成正确的输出。但是如果我主要有这两个函数,我会从函数中得到随机的错误输出co2ScrubberRating。而且我不知道它为什么会这样。我想这与第二次将 ArrayList 传递给函数有关。

任何见解将不胜感激。

0 投票
1 回答
23 浏览

metaprogramming - 为@call 构建可变长度参数数组

我最近开始学习 Zig。作为一个小项目,我想实现一个用于编写随机测试的小型 QuickCheck [1] 样式帮助程序库。

但是,我不知道如何编写通用方法来调用具有任意数量参数的函数。

这是一个简化版本,可以使用两个参数测试函数:

我尝试了一些不同的方法,但我不知道如何让上述代码适用于具有任意数量参数的函数。

我尝试过的事情:

  • 制作args一个数组并用inline for循环填充它。不起作用,因为[]anytype不是有效类型。
  • 使用一点 comptime 魔法来构建一个结构类型,其字段包含@call. 这在编译器中遇到了一个 TODO:error: TODO: struct args.
  • 编写返回适当参数元组调用的通用函数。我真的不喜欢这个,因为你需要一个函数来支持你想要支持的每一个 arity。但它似乎无论如何都不起作用,因为antype它不是有效的返回类型。

我在 Zig 0.9.1。

任何见解将不胜感激。

[1] https://hackage.haskell.org/package/QuickCheck

0 投票
1 回答
57 浏览

zig - 如何包含另一个 .zig 文件中的一个 .zig 文件

只是探索 Zig... 我有一个 .zig 文件,其中包含一堆 comptime 函数和常量,我想在其他 .zig 程序中使用它们。相当于#include "my.h"在 C 中。

0 投票
1 回答
18 浏览

arrays - Zig 错误:非数组类型的数组访问

我需要一些帮助来创建一个数组作为 Zig 中的结构字段。

当我编译时,它给了我以下错误

我哪里做错了?请帮忙,谢谢。

0 投票
1 回答
26 浏览

string - 使用 String 参数创建结构

我只想创建一个带有可变字符串(utf-8 文本)的结构。

可能吗?或者我必须设置字符串的最大长度(例如name: [255]u8;)?当我传递给编译器时,它说:

无论如何,我想念原生字符串类型,而不必处理字节。有没有图书馆?