Quelqu'un peut-il résoudre cette erreur macro que je vais avoir, il n'a commencé à se produire dans la version 0.6:Julia v0.6 macro dans la fonction
mutable struct Foo
x::Int
end
macro test(myfoo)
quoteblock =
quote
myfoo.x += 1
end
return quoteblock
end
function func(myfoo)
@test myfoo
println(myfoo.x)
end
foo = Foo(3)
func(foo)
En théorie, cela devrait simplement remplacer la ligne @test myfoo
dans la fonction func
avec myfoo.x += 1
au moment de la compilation, qui devrait fonctionner, mais j'obtiens l'erreur:
UndefVarError: myfoo not defined
Cela résout mon exemple, mais apparemment mon exemple n'a pas capturé un peu subtilement dans mon code actuel. Quand j'inclus $ (esc()), j'obtiens maintenant l'erreur non définie immédiatement en essayant de charger mon code source. – Thoth
@Thoth Pouvez-vous poster l'intégralité du code? – Gnimuc
nm, j'ai trouvé un moyen d'adapter votre solution, merci. – Thoth