gpt4 book ai didi

d - D 中的开关盒替代方案

转载 作者:行者123 更新时间:2023-12-02 06:35:43 24 4
gpt4 key购买 nike

我有以下问题。

在输入控制台我可以输入一个字符串,系统会以此为基础采取行动。

所以如果我输入 add_2_with_2,它会给我一个 4,如果我输入sqrt_4 它会给我 2,等等。一般来说,你会用一个switch/case 命令,但问题是,那么我需要一个每个案例的条件。所以如果我想额外输入cube_2,那我得写个案例。

但是,我想做同样的事情而不必明确每次我插入一个新命令时写一个案例。所以例如,如果输入“FUNCTION_1”,然后程序应该在特定的放置在特定的 forlder/文件中,找出函数是否是定义并执行。如果文件/文件夹中没有定义,那么它应该抛出异常。如果我还想输入“FUNCTION_2”,然后我将在同一个函数中定义函数文件或文件夹(D 可能的任何内容),然后让自动搜索和执行的原始程序。

这可以在 D 中完成吗?

(抱歉愚蠢的问题和糟糕的英语)

最佳答案

是的,你可以,有几种方法可以做到。

1) 您可以从一个程序内部调用函数,并使用编译时反射自动查找/映射它们。

我在我的终端仿真器的实用程序中这样做了。查看源代码以了解我是如何做到的: https://github.com/adamdruppe/terminal-emulator/blob/master/utility.d

要将其用于您自己的目的,您可以删除 version() 语句、更改模块名称并编写您自己的函数。

2) 您还可以在目录中查找脚本并以此方式运行它们。使用 std.process 和 std.file 查找文件并运行它。

关于d - D 中的开关盒替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745517/

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