Язык Julia: Вставка глобального списка в функцию, изменение глобального списка - PullRequest
2 голосов
/ 28 сентября 2019

У меня есть информация о глобальном списке переменных.Я хочу использовать эту информацию и сделать некоторые манипуляции с ней.Но я не хочу менять этот глобальный список.Прямо сейчас любая манипуляция, которую я делаю, изменяет этот глобальный список.У меня уже есть длинный код с этим глобальным списком.

Следующий пример представляет мою трудность с ошибкой:

function Dont_Change_Global_List(L)
Manipulating_List = L
deleteat!(Manipulating_List,2)
return Manipulating_List
end

global s = [1,2,3,4,5]

println("function result: ",Dont_Change_Global_List(s))
println(“global list”, s)

I get:

function result: [1, 3, 4, 5]
global list[1, 3, 4, 5]

Мне нужен следующий результат:

function result: [1, 3, 4, 5]
global list[1, 2, 3, 4, 5]

Могу ли я что-нибудь сделать, не изменив глобальный список, но все же сделать манипуляции?

1 Ответ

1 голос
/ 28 сентября 2019

Вы можете copy список внутренне:

function dont_change_list(L)
    Manipulating_List = copy(L) 
    deleteat!(Manipulating_List,2) 
    return Manipulating_List
end
...