我刚刚发现了Chapel的config变量修饰符,该修饰符非常适合命令行操作。还有其他模仿该功能的语言或框架,这样我就不必每次都对过滤器进行编程了吗?

最佳答案

所有chapel config -s的宽度确实是无与伦比的:

config var   VAR  = 1;         //  --VAR=10         sets other value from cmdline
                               //  --VAR 20         sets other value too
config const RHO  = 1.23456;   //  --RHO=0.123456   sets other value from cmdline
                               //  --RHO 0.2468     sets other value too
                               //  --RHO=0.39*VAR   sets other value for COMPILER
                               //                                    based on VAR
config param DBG  = false;     // -s DBG=true       sets other value from cmdline
config type  B    = uint(8);   //    -sB='uint(16)' sets other value from cmdline
                               //    -sB='if DBG then uint(32) else uint(16)'
                               //                   sets other value for COMPILER
                               //                                    based on DBG

尽管必须有一个编译时已知的类型,这是一个一定的限制(对于强类型的,显而易见的和自然的已编译语言),但仍可以灵活地使用这些结构进行自适应的临时设置运行时可配置行为非常好,并且在其他语言/编译器环境中很难并行执行。

10-07 20:07