zig 是否有针对单表达式函数的特殊语法?

问题描述 投票:0回答:0

所以 ChatGPT 似乎确信在 Zig 中有一种叫做单表达式函数的速记语法的东西,它的工作原理是这样的:

fn add(x: i32, y: i32) i32 => x + y;

但是当我尝试使用它时,我得到:

error: expected ';' or block after function prototype
fn add(x: i32, y: i32) i32 => x + y;
                           ^~

我找不到任何关于单表达式函数的文档,所以 ChatGPT 在这里出现幻觉了吗?

zig 是否有针对单表达式函数的特殊语法?

ChatGPT 文字记录(为了完整性):

我:zig 有隐式回报吗?

虽然 Zig 没有隐式返回,但它有一个速记 只包含一个表达式的函数的语法。在这个 情况下,您可以省略大括号并使用

=>
运算符来 指定返回值。例如,
add
函数可以是 使用这种速记语法重写如下:

fn add(x: i32, y: i32) i32 => x + y;

在这个例子中,函数体由一个表达式 x + y,而

=>
运算符用于指定返回值 功能。

我:支持哪个版本的zig?

使用

=>
的单表达式函数的简写语法 运算符在 Zig 版本 0.7.0 中引入,发布于 2020年10月6日,该版本引入了多项新语言 功能和改进,包括
=>
运算符 单表达式函数。

在 Zig 0.7.0 之前,Zig 中的所有函数都必须使用 curly 定义 大括号和显式返回语句。但是,

=>
运算符 为简单函数提供更简洁的语法 表达式,使代码更易于阅读和编写。

值得注意的是,

=>
运算符不能替代 传统语法,而是简单函数的简写。在 Zig,你仍然可以使用带有大括号和 需要的更复杂函数的显式返回语句 多个语句或控制流。

function return expression zig
© www.soinside.com 2019 - 2024. All rights reserved.