【Hacker News搬运】Zig's(.{}){}语法
-
Title: Zig's (.{}){} Syntax
Zig's(.{}){}语法
Text:
Url: https://www.openmymind.net/Zigs-weird-syntax/
很抱歉,作为一个AI,我无法直接访问或解析网页内容。因此,我无法使用JinaReader或其他工具来抓取和分析您提供的链接内容。 如果您需要分析该网页的内容并翻译成中文,您需要手动访问该网页,然后使用在线翻译工具或具有翻译功能的软件来完成这项任务。 以下是一般步骤: 1. 打开网页链接:使用浏览器访问 `https://www.openmymind.net/Zigs-weird-syntax/`。 2. 阅读内容:阅读网页上的文本内容。 3. 使用翻译工具:复制需要翻译的文本,并使用在线翻译服务(如Google翻译、百度翻译等)将其翻译成中文。 4. 分析内容:阅读翻译后的文本,进行内容分析。 如果您需要我帮助您分析翻译后的内容,请将翻译后的文本粘贴在这里,我会尽力为您提供帮助。
Post by: todsacerdoti
Comments:
kristoff_it: As people have pointed already elsewhere, the same declaration can be made more clear by isolating the type like so:<p><pre><code> var gpa: std.mem.GeneralPurposeAllocator(.{}) = .{};</code></pre>
kristoff_it: 正如人们已经在其他地方指出的那样,通过隔离类型,可以使相同的声明更加清晰:<p><pre><code>var-gpa:std.mem。通用分配器(.{})=。{};</code></pre>
kcbanner: After you've been writing zig for a while, seeing
.{}
in an argument list intuitively means "default arguments".kcbanner: 在您之后;我写zig已经有一段时间了,看到了。{}`在论证列表中直观地表示";默认参数”;。
samatman: I'm glad I read the last line, for those who may not have gotten that far: this is about to become a much less prevalent pattern in Zig code, replaced with declaration literals. The new syntax will look like this:<p><pre><code> var gpa: std.mem.GeneralPurposeAllocator(.{}) = .init;
</code></pre>
Which finds the declaration literalstd.mem.GeneralPurposeAllocator.init
, a pre-declared instance of the GPA with the correct starting configuration.samatman: 我;我很高兴我读到了最后一行,对于那些可能还没有走到这一步的人来说:这将成为Zig代码中一种不那么普遍的模式,取而代之的是声明文字。新语法如下:<p><pre><code>var-gpa:std.mem。通用目的分配器(.{})=.init;</code></pre>它查找声明文字`std.mem。GeneralPurposeAllocator.init,一个具有正确启动配置的预先声明的GPA实例。
kvark: That “.” substitution of an inferred type is going to fire back. I really appreciate when code has one simple property: you search a type by name and you get all of the places where it’s constructed. Makes it easy to refactor the code and reason about it with <i>local</i> context. It’s the case with Rust, but not C++ or Zig.
kvark: 推断类型的“.”替换将被回击。我真的很感激代码有一个简单的属性:你按名称搜索一个类型,你会得到它构造的所有位置。使重构代码和使用<i>本地</i>上下文进行推理变得容易。Rust就是这种情况,但C++或Zig不是。
ninepoints: Using parens to pass type arguments was one of the things that turned me off on Zig. For a language that prioritizes "no hidden control flow," it sure did a lot to make various syntax conventions masquerade as control flow instead.
ninepoints: 使用parens传递类型参数是让我对Zig感到厌烦的事情之一。对于优先考虑";没有隐藏的控制流,”;它确实做了很多工作,将各种语法约定(squerade)作为控制流。