【发布时间】:2021-01-07 10:24:52
【问题描述】:
我有一个包含 for 循环的函数。我想为该函数添加一个参数,让我选择使用并行运行循环
Threads.@threads for i in ...。
因此我只需要在循环前面注入Threads.@threads。宏不起作用,因为它们无法处理关键字。
或者我可以有类似的东西
if parrallel
inject("Threads.@threads for i in 1:n")
else
inject("for i in 1:n")
end
loop content....
end
我找不到任何方法来插入这样的代码。怎么办?
当然可以选择将整个循环放在一个函数中,然后在函数上使用包含 for 循环的 if else,但我更喜欢其余代码。
【问题讨论】:
-
及时注入代码听起来不是一个好的或简单的方法。这里有一个类似的问题:stackoverflow.com/questions/32871620/….
-
我读到了,但我认为提出的问题不适用,因为我想在一个函数内而不是从函数外部执行它。
-
你想注入这样的代码的原因是什么?在我看来,这似乎是一种非常奇怪的编程方式。它不能正确编译,很难做到,也没有任何明显的优势。我错了吗?
-
可能是无能 ;) 我确实认为它可能不是最佳的,但基本上我只是在寻找一种方法来尽可能多地留下代码。