Рассмотрим эти два определения макросов:
macro createTest1()
quote
function test(a = false)
a
end
end |> esc
end
macro createTest2()
args = :(a = false)
quote
function test($args)
a
end
end |> esc
end
В соответствии со встроенными средствами Julia они оба должны вычислять одно и то же при расширении:
println(@macroexpand @createTest1)
begin
function test(a=false)
a
end
end
println(@macroexpand @createTest2)
begin
function test(a = false)
a
end
end
Тем не менее я получаю ошибку разборапри попытке оценить второй макрос:
@createTest2
ERROR: LoadError: syntax: "a = false" is not a valid function argument name
Это пробел во втором списке аргументов.Тем не менее, это должен быть правильный синтаксис Юлии.Я предполагаю, что он интерпретирует второй список аргументов как другую конструкцию Джулии по сравнению с первой.Если это так, как мне обойти это?