Я думаю, что ошибка ясна: вам нужно определить CircularArray(length::Int)
. Однако вы реализовали параметрический конструктор . Чтобы вызвать ваш параметрический конструктор, вам нужно передать параметр T
с вызовом вашего конструктора, например,
a = CircularArray{Float64}(10);
Вы также можете реализовать непараметрический конструктор для выбранного по умолчанию типа. Например;
CircularArray(length::Int) = CircularArray{Float64}(length)
После этого ваш вызов этого конструктора, CircularArray(10);
, не даст MethodError: no method matching CircularArray(::Int64)
.
Обратите внимание на ;
в конце команд. Вам нужно определить другие методы (например, size
) для вашего типа массива, чтобы display
мог работать. В противном случае вы можете получить ошибку в REPL, если пропустите ;
после оценок, которые возвращают CircularArray
.