首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个.zig文件中包含一个.zig文件?

如何从另一个.zig文件中包含一个.zig文件?
EN

Stack Overflow用户
提问于 2022-02-19 15:49:13
回答 2查看 510关注 0票数 5

只是在探索Zig..。我有一个带有复时间函数和常量的.zig文件,我想在其他.zig程序中使用这些函数和常量。相当于C中的#include "my.h"

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-21 13:16:16

答案是@import("foo.zig")几乎做到了这一点。如果您有foo.zig:

代码语言:javascript
复制
const a = 1;
pub const b = 2;
pub const c = 3;

然后在main.zig中:

代码语言:javascript
复制
const stdout = @import("std").io.getStdOut().writer();
const foo = @import("foo.zig");
const c = foo.c;
const a = foo.a;
test "@import" {
//  try stdout.print("a={}\n",.{foo.a});
//  try stdout.print("a={}\n",.{a});
    try stdout.print("b={}\n",.{foo.b});
    try stdout.print("c={}\n",.{c});
}

将打印b和c的值,但如果取消注释注释行,您将得到一个错误,因为a没有导出(pub)。有趣的是,除非使用了const a=foo.a,否则a不会出现错误。

似乎无法将所有的导入转储到当前的命名空间中,因此,如果您希望名称不合格,则必须为每个名称设置一个const行。

多亏了齐格人的不和,特别是里姆普和克里斯多夫

票数 5
EN

Stack Overflow用户

发布于 2022-12-01 17:35:05

您实际上可以使用:

代码语言:javascript
复制
const bar = struct {
    usingnamespace @import("foo.zig");
};

将完整的命名空间导入到结构中,但不导入顶层。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71186556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档