使用 Dlang 计算目录中的文件数

2024-03-28

我想要一种简单的方法来使用 D 来计算目录中的文件数量。

据我从 D 手册中可以看出,dirEntries 返回一个范围,但它没有长度属性。因此,我必须用计数器迭代结果,或者收集传统数组中的名称,我可以找到它的长度...有更好的方法吗?

auto txtFiles = dirEntries(".", "*.txt", SpanMode.shallow);

int i=0;
foreach (txtFile; txtFiles)
    i++;

writeln(i, " files found..");

范围一般没有length财产,除非它可以计算O(1)。任何无法更好地计算其长度的范围O(n)不会有length财产,因为效率太低了。获取范围长度的惯用方法length财产是用来std.range.walkLength http://dlang.org/phobos/std_range.html#walkLength。它用length如果范围定义length;否则,它只是迭代该范围并计算有多少个元素。

您还可以使用std.algorithm.count http://dlang.org/phobos/std_algorithm.html#count,但它的目的是计算与谓词匹配的元素的数量,并且虽然它默认返回返回的谓词true对于每个元素,效率都低于walkLength, 因为walkLength在迭代元素时不会调用元素上的任何内容,并且它将使用length相反,如果它已被定义,而count永不。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Dlang 计算目录中的文件数 的相关文章

  • Python %d,%s,%f

    当你看到输出语句存在 d s f等百分号的时候 就接触到python 字符串格式化输出相关知识 Python 支持字符串格式化输出 尽管这样可能遇到非常复杂的表达式 但最基本的是用法就是将一个值插入到一个有字符串格式符 s的字符串中 如 例
  • 如何以完美的精度将字符串转换为浮点数?

    我正在尝试用 D 编程语言编写一个函数来替换对 C 的 strtold 的调用 理由 要使用 D 中的 strtold 您必须将 D 字符串转换为 C 字符串 这是低效的 而且 strtold 无法在编译时执行 我已经提出了一个大部分有效的
  • D lang - 在同一程序中使用 read 和 readln()

    我的 D 程序遇到了一个非常奇怪的问题 read s variable 本身工作得很好 而 readln variable 本身工作得很好 但是当我将两者放在一起时 readln 似乎被忽略了 使用 gdc 和 dmd 均发生错误 impo
  • D 中的优雅运算符重载

    有一段时间我对 D 运算符重载的方向感到困惑 但现在我意识到这是一个漂亮的系统 如果它只适用于核心类型 int float 等 考虑以下代码 struct Vector float X Y void opOpAssign string op
  • 如何从头开始创建/编写一个简单的 XML 解析器?

    如何从头开始创建 编写一个简单的 XML 解析器 我想知道什么是简化的基本英语步骤 而不是代码示例 一个好的解析器是如何设计的 我知道正则表达式不应该在解析器中使用 但是正则表达式在解析 XML 中的作用有多大 推荐使用什么数据结构 我应该
  • 枚举构造函数(创建成员的成员)

    在 D 中 我试图创建一个成员有成员的枚举 我可以通过一个例子更好地解释我想要做什么 其中s and i代表我试图创建的子成员 在Python中 我可以这样做 class Foo enum Enum A A string 0 B B str
  • 在 D2 中将 std.algorithm.map 与成员函数结合使用

    I have Foo foo new Foo foreach i 0 10 Bar bar foo getBar i 我希望能够 等效地 说 foreach bar foo getAllBars 我该如何实施getAllBars 我想了这样
  • 延迟读取 D 中的文件

    我正在用 D 编写一个目录树扫描函数 它尝试将 grep 和 file 等工具结合起来 并且仅当文件中的内容满足条件时才对文件中的内容进行条件 grepnot匹配一组指示文件类型的魔术字节 例如 ELF 图像等 在最小化文件 io 方面 使
  • 是否可以编译unittest而不运行它们并为特定模块显式运行unittest?

    我经常在开发 API 时在主函数中编写测试代码 但因为 D 集成了单元测试 所以我想开始使用它们 我当前的工作流程如下 我有一个脚本可以监视任何 d 文件中的文件更改 如果脚本找到修改过的文件 它将运行dub build 问题是dub bu
  • 如何将 ubyte[] 解码为指定的编码?

    问题是 在运行时设置编码时如何解析文件 编码可以是 utf 8 utf 16 latin1 or other 目标是将 ubyte 从所选编码转换为字符串 因为当您使用 std stdio File byChunk 或 std mmFile
  • 使用D语言开发应用程序

    对于那些使用 D 开发过应用程序的人来说 您使用哪些库来构建您的应用程序 那些图书馆有很好的记录吗 你用过探戈吗 您觉得 D 准备好构建大型应用程序了吗 你用的是哪个IDE 也许是下降 请注意 任何 C 库都可以与 D 一起使用 因为 D
  • 为什么线程本地存储这么慢?

    我正在为 D 编程语言开发一个自定义标记释放样式的内存分配器 它通过从线程局部区域进行分配来工作 与代码的其他相同的单线程版本相比 线程本地存储瓶颈似乎导致从这些区域分配内存的速度大幅减慢 50 即使在将我的代码设计为每次分配仅进行一次 T
  • 通过 mixin 列出类的方法

    我想在 mixin 中列出一个类的方法 为此 我假设我必须打开 mixin 中包含源代码的文件 但找到该文件的名称比我想象的要难 我尝试使用 FILE 但它给出了 mixin 声明的文件 所以我必须在每个文件中定义 mixin 这没有任何意
  • 从 D 中的字符串获取普通 char*?

    我正在尝试弄清楚如何从 D 字符串 不可变 char 获取普通的可变 C 字符串 char 以便将字符数据传递给遗留的 C 代码 toStringz 不起作用 因为我收到一条错误 说我 无法将 immutable char 类型的表达式 t
  • 具有类和结构的命名空间?

    如果我能用 D 语言得到 嵌套成员 就好了 所以我有一个不光彩的想法来编码 class Keyboard struct Unused string key1 Wake Up string key2 Sleep string key3 Pow
  • D 中的枚举与不可变

    有什么区别 enum i 2 enum s Hello and immutable i 2 immutable s Hello 在 D 2 0 中 An enum是用户定义的类型 而不是变量 enum e 2 是一个 像这样的东西的简写en
  • 如何使用vibed将文件加载到本地文件系统?

    我需要将数据从网络浏览器发送到本地文件系统 为了发送数据 我使用 Vue JS成分 https github com james2doyle vue file upload component
  • 使用 Dlang 计算目录中的文件数

    我想要一种简单的方法来使用 D 来计算目录中的文件数量 据我从 D 手册中可以看出 dirEntries 返回一个范围 但它没有长度属性 因此 我必须用计数器迭代结果 或者收集传统数组中的名称 我可以找到它的长度 有更好的方法吗 auto
  • D有“新类型”吗?

    D 是否有 newtype 如 Haskell 中 这是一个天真的问题 因为我只是浏览 D 但谷歌没有找到任何有用的东西 在 Haskell 中 这是一种在编译时使同一事物的不同类型变得不同的方法 但不会导致任何运行时性能损失 例如你可以为
  • D 中的特征可以用于类型类吗?

    我是 D 新手 我正在寻找一种使用类似 Haskell 的类型类进行编程的好方法 例如D 中的函子 幺半群等 Tango 或 Phobos 中是否实现了类似的功能 我听说过可以对某些属性进行编译时类型检查的特征 它们可以用于类型类吗 我尝试

随机推荐

  • FileStream 似乎没有启用

    在我们的开发数据库之一上 我尝试启用 FileStream 我运行了下面的脚本 据说它从 0 禁用变为 2 启用 Use FileStreamTest GO EXEC sp configure filestream access level
  • 实体框架视频教程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有免费的视频教程深入讨论 EF 而不仅仅是基础知识 Thanks 下面的视频是我看过的关于实体框架
  • 为什么DATETIME可以减整数,但DATE类型不能减

    DATETIME INTEGER 和 DATE INTEGER 的关系是否一致 这执行得很好 DECLARE Yesterday DATETIME GETDATE SELECT Yesterday 1 就像这样 DECLARE Yester
  • 如何有效地检查同一个表中的两列是否是一对一映射?

    即使不同值计数相等 也并不一定意味着一对一的映射关系 SELECT COUNT DISTINCT Column A FROM MyTable SELECT COUNT DISTINCT Column B FROM MyTable A 列 1
  • 通过 json_encode 传递日语字符(UTF-8)的问题

    我在通过 json encode 将日语字符从 PHP 传输到 JavaScript 时遇到问题 这是从 csv 文件读取的原始数据 PRODUCT1 QA PRODUCT2 QA a PRODUCT3 QA 1 问题是 当通过 echo
  • 限制性安排的数量

    我正在寻找一种更快的方法来解决这个问题 假设我们有n boxes and n 弹珠 他们每个人都有不同的种类 每个盒子只能包含某种弹珠 如下例所示 并且只有一个大理石适合装在一个盒子里 请阅读编辑内容 整个算法已在下面链接的帖子中进行了描述
  • Oracle SQl Dev,如何计算2个日期之间的工作日数

    有谁知道如何计算两个日期字段之间的工作日数 我正在使用 oracle sql 开发人员 我需要找到多个开始日期和结束日期之间工作日的平均值 因此 我需要获取每条记录的天数 以便对它们进行平均 这是可以作为一行完成的事情吗 SELECT我的查
  • 将“Future[Option[Future[Option[X]]]]”转换为“Future[Option[X]]”

    如何转型Future Option Future Option X into Future Option X 如果它是一个TraversableOnce代替Option我会用未来的伴生对象 http www scala lang org a
  • Console.ReadKey 取消[重复]

    这个问题在这里已经有答案了 可能的重复 如何向 Console ReadLine 添加超时 https stackoverflow com questions 57615 how to add a timeout to console re
  • 在 Visual Studio 中编译为独立可执行文件 (.exe)

    如何在 Visual Studio 中制作独立的 exe 它只是一个简单的控制台应用程序 我认为用户不会喜欢安装一个微小的控制台应用程序 我使用 Visual Studio 命令提示符编译了一个简单的 cpp 文件 即使未安装 NET Fr
  • 在 DataTrigger 内绑定 Storyboard 动画会导致 XamlParser 崩溃

    我希望我的应用程序在每次发生特定事件时将椭圆动画到新位置 出于测试目的 我制作了一个更改视图模型属性的按钮 并且该属性绑定到触发动画的数据触发器 但后来我希望视图模型根据我尚未实现的其他事件触发它 这就是为什么我可以不要直接在视图中使用绑定
  • 如何在 Windows 上设置 git 存储库,然后在 Mac OSX 上对其进行推送/拉取

    我正在尝试设置一个基于 Windows 的 Web 服务器 但在 Mac OSX 上进行开发工作 我在 Windows 服务器上安装了 freeSSHd 和 msysGit 并在我想要的位置设置了一个存储库 我的 Mac 上也有 git 并
  • 使用 XCTest 进行异步性能测试

    我已经开始探索用于异步和性能测试的新 XCTest API 单独来看 WWMC 中的 Apple 示例运行良好 但我一直无法弄清楚如何将它们结合起来 我能想到的最好的方法如下 但运行时收到以下错误 API 违规 在未设置任何期望的情况下调用
  • 有没有办法从 applet 本身重新加载/刷新 java applet?

    我的小程序上有一个按钮 包含在浏览器中 我想通过以下两种方式之一重新加载或刷新整个小程序 刷新小程序本身 无需刷新浏览器 刷新整个浏览器 这可以在小程序内实现吗 使用 AppletContext showDocument 方法 applet
  • HTML5 视频无法在 Chrome 中加载,但在打开开发者控制台时可以工作

    我正在为客户开发一个网络应用程序 HTML5 视频标签存在问题 问题是该视频无法在 Chrome 中加载 但可以在 Safari Firefox 和 IE 上加载 所以我开始在 Chrome 中调试 但我发现如果我在打开控制台的情况下刷新页
  • C++ 中默认的 catch throw 语句按值传递还是按引用传递

    默认的catch语句是如何实现的catch 通过值或引用捕获异常 其次 默认怎么抛出throw 抛出异常 按值还是按引用 包罗万象的捕获物 根本不允许您访问异常对象 因此这个问题没有实际意义 更正 重新投掷throw 抛出原始对象 如果处理
  • Errno::ENOMEM:无法分配内存 - cat

    我有一项在生产环境中运行的作业 用于处理 xml 文件 xml 文件总共约为 4k 大小为 8 到 9 GB 处理后我们得到 CSV 文件作为输出 我有一个 cat 命令 它将所有 CSV 文件合并到我得到的单个文件中 Errno ENOM
  • “Greedy” 和 “Reluctant” 正则表达式量词有什么区别?

    来自Pattern http java sun com javase 6 docs api java util regex Pattern htmljava文档 Greedy quantifiers X X once or not at a
  • 如何通过 YouTube API 检索我自己的私人播放列表?

    我正在尝试找到一种方法从 YouTube 检索我自己的私人播放列表 以便在我自己的个人网站上显示 到目前为止 所有文档似乎都表明检索私人用户数据 如私人播放列表 需要您的网站users通过身份验证过程以提供他们自己的验证 就我而言 我不想要
  • 使用 Dlang 计算目录中的文件数

    我想要一种简单的方法来使用 D 来计算目录中的文件数量 据我从 D 手册中可以看出 dirEntries 返回一个范围 但它没有长度属性 因此 我必须用计数器迭代结果 或者收集传统数组中的名称 我可以找到它的长度 有更好的方法吗 auto