D 在编译期间,将字符串作为参数从命令行混入

D 在编译期间,将字符串作为参数从命令行混入,d,D,有没有办法在编译时将字符串作为命令行参数获取 例如: import std.stdio; void main() { mixin(theString); } 理想用法: 我找到的唯一解决方案是使用bash脚本: echo -n $1 > special_file dmd source/app.d -J. 该计划的工作如下: import std.stdio; void main() { mixin(import("special_file")); } 你可以看到它在上

有没有办法在编译时将字符串作为命令行参数获取

例如:

import std.stdio;
void main()
{
    mixin(theString);
}
理想用法:


我找到的唯一解决方案是使用bash脚本:

echo -n $1 > special_file
dmd source/app.d -J.
该计划的工作如下:

import std.stdio;
void main()
{
    mixin(import("special_file"));
}

你可以看到它在

上工作,为什么你需要它?根据更高级别的使用案例,我有一些其他的想法。我在周末刚刚探索了D的字符串混合功能。这个想法是实现一个Brainfuck编译器,它在编译时将给定的Brainfuck文件编译成D本身。这很简单。你只需要访问str对brainfuck文件进行加密,过滤8个相关字符,并在其上映射或循环,为每个给定字符生成代码(您可以使用dict进行此操作)。我只是想在编译过程中将目标brainfuck文件作为命令行参数。一旦我回到家,拿到我的笔记本电脑,我会给你一个github链接。啊,那么,你的解决方案就是一个很好的解决方案:)在回答中添加了repo我刚才在看Ali Chehreli的《C++Now 2017》演讲“D的竞争优势”,他提到了将D代码作为命令行参数传递以立即编译和执行的技巧,例如:
rdmd--eval='writeln(“Hello”);
(参见第83页)。