当我使用函数指针时,我发现 Zig 的一个有点奇怪的特性。
这是函数指针类型的一个简单示例:
const std = @import("std");
const print = std.debug.print;
const aFunc = fn (x: i32) void;
fn theFunc(x: i32) void {
print("have {}\n", .{x});
}
pub fn main() void {
const f: aFunc = theFunc;
f(3);
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译并运行正常。
现在像这样更改它,向aFunc类型定义添加一个名称:
const std = @import("std");
const print = std.debug.print;
const aFunc = fn someFunc (x: i32) void;
fn theFunc(x: i32) void {
print("have {}\n", .{x});
}
pub fn main() void {
const f: aFunc = theFunc;
f(3); …Run Code Online (Sandbox Code Playgroud) zig ×1