Вы должны использовать push!()
, а не append!()
.
append!()
всегда обрабатывает свой аргумент как итератор, тогда как push()!
обрабатывает аргумент как отдельный объект, который добавляется как целая единица. Поскольку строки Julia являются итераторами (где каждый символ повторяется как Char
), ваша «тестовая» строка повторяется Char от Char. Поскольку вы указали свой массив как строковый тип, Джулия выполняет проверку типа объектов, которые вы вставляете в массив; вот почему вы получили ошибку.
Для тех, кто пришел из Python, push!()
Джулии является более близким эквивалентом append()
.
Python.
Итак, вот как отличается поведение двух функций в массиве Any (что в основном позволяет добавлять любой тип):
# using append!():
arry = Any["a"]
append!(arry, "test")
# result == ["a", 't', 'e', 's', 't'] (a String and four Chars)
# using push!():
arry = Any["a"]
push!(arry, "test")
# result == ["a", "test"] (two Strings)