gpt4 book ai didi

module - 在 D 项目中组织模块

转载 作者:行者123 更新时间:2023-12-04 13:39:23 26 4
gpt4 key购买 nike

我来自Java背景,然后打包问题如下:

我可以在同一个包下有很多文件,比如 com.parobay.io .然后我可以将它作为一个库分发,用户将像这样使用它:

import com.parobay.io.Input;
import com.parobay.io.Output;

或者
import com.parobay.io.*; // to import everything

所以我可以在多个文件中定义一个“模块( com.parobay.io)和类。

那么我如何在 D 中实现相同的效果呢?我必须创建一个目录 com\parobay\io并放置两个名为 Input.d 的文件和 Output.d还是有更聪明的方法?

在 Java 中,规则非常严格,因此很难出错。在 D 中有很多可能性。那么是否有任何约定,例如每个文件一个类,或者文件名等于类名?

最佳答案

您可以选择与 Java 基本相同,但请记住以下项目:

  • 进口 foo.*在 D 中不起作用,但您可以创建一个名为 package.d 的文件在手动列出 public import foo.Input; public import foo.Output; 的目录中等,它允许您导入整个包。
  • 总是放一个module com.parobay.io.Input;或导入的任何文件顶部的任何行。不要指望它只根据目录结构和文件名工作。目录结构实际上并不是绝对必要的,它只是一种方便查找文件的约定。 module顶部带有名称的行是编译器检查的权威内容。
  • D 模块的名称通常都是小写的,但如果您愿意,也可以使用大写的名称。我认为使用像类名这样的小写名称很好,所以你可以调用模块 io.input和类(class)Input .这种约定的原因是有时文件名大小写在从系统传输到系统时会丢失。但是开发人员非常了解大小写,因此在实践中任何一种方式都应该有效。
  • 每个文件一个类可以正常工作,或者您可以将两个紧密耦合的类放在同一个文件中(如果它们在同一个文件中,它们将可以访问彼此的私有(private)成员)。

  • 有关更多信息,请参阅此页面: http://dlang.org/module尤其是搜索标题“包模块”

    关于module - 在 D 项目中组织模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23910338/

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