Я второй @ комментарий Тасоса, возможно, вам следует сначала ознакомиться со структурами Джулии. Соответствующая часть документации, вероятно, здесь .
Поскольку вы объявили свою структуру как struct
(в отличие от mutable struct
), она неизменна и, следовательно, все (неизменяемые) поля структуры являются константами в том смысле, что их нельзя изменить.
julia> struct A
x::Int
end
julia> a = A(3)
A(3)
julia> a.x = 4
ERROR: type A is immutable
Stacktrace:
[1] setproperty!(::A, ::Symbol, ::Int64) at .\sysimg.jl:19
[2] top-level scope at none:0
Обратите внимание, что они получают свое неизменное значение в процессе построения, а не в определении структуры.
Кроме того, методы обычно должны находиться за пределами определения структуры.