gpt4 book ai didi

compiler-construction - 为什么模块在文件中显式命名?

转载 作者:行者123 更新时间:2023-12-04 00:57:07 25 4
gpt4 key购买 nike

来自 D language reference :

Modules have a one-to-one correspondence with source files. The module name is the file name with the path and extension stripped off.



但是,模块名称仍然在文件中明确指定。
module foo;

这有什么意义?如果模块对应于文件,为什么编译器不能从文件名中推断出它们的名称?

最佳答案

同一页有点下(emph mine)

The ModuleDeclaration sets the name of the module and what package it belongs to. If absent, the module name is taken to be the same name (stripped of path and extension) of the source file name.



这意味着如果你想将一个模块放在一个包中,你必须明确指定它(如 Java 的 package 声明),并且考虑到人们使用奇怪/外国目录名称的奇怪倾向,你不能依赖检查路径中的 source/src/import

文件名和模块名不必相同的原因可以是,您可以使用 .di 进行导入,并使用 -c 开关使用实际代码的多个版本来创建 .obj 文件以链接不同版本(虽然摆弄导入路径更方便)

关于compiler-construction - 为什么模块在文件中显式命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com