Мне было интересно, есть ли способ программно или динамически импортировать набор модулей в Джулию? Например, если у меня есть список файлов, которые соответствуют определенному соглашению об именах, которые присутствуют при запуске, я могу захватить с помощью чего-то вроде:
module_files = filter(r"^mod[0-9][0-9].jl$", readdir())
который может вернуть список файлов ["mod00.jl", "mod02.jl", "mod05.jl"]
, есть способ затем импортировать каждый из модулей в эти файлы. Это было бы эквивалентно:
import mod00
import mod02
import mod05
в коде, если бы я знал, что эти модули доступны, когда я написал код. Или, может быть, есть другой подход к этому, это лучше. Любые предложения будут высоко ценится.
Обновить
Я попытался сделать это с помощью макроса, но не повезло. Например:
macro import_mod(modn)
quote
import $modn
end
end
function test_mimport()
module_files = filter(r"^mod[0-9][0-9].jl$", readdir())
println(module_files)
for modname in factor_files
modn = modname[1:end-3]
println(modn)
@import_mod modn
end
end
Когда я запускаю это, я получаю ERROR: syntax: invalid "import" statement
. Я пробовал различные стратегии побега, но все так не получилось.