Я хочу использовать объект в Julia, который может быть инициализирован функцией. Это как указатель на функцию в C.
julia: объект функции
Вот моя цель:
У меня есть сценарий Юли и модуль Джулии.
В этом скрипте у меня есть массив.
Модуль должен иметь возможность добавлять некоторые элементы в этот массив.
#script
liste = Int64[]
function addElement(e)
liste.push(e)
end
include("path/mymodule.jl")
myModule.setAddElementFunc(addElement)
myModule.execute() # error: wrong number of parameter
#mymodule.jl
module myModule
export setAddElementFunc
export execute
addElementFunc =()->()
funciton setAddElementFunc(fn)
addElementFunc = fn
end
function execute()
addElementFunc(3)
end
end
В основном, моя идея:
в модуле, мы ничего не можем, НО add
делать. Мне нужно сделать такую структуру, потому что моя задача - кодировать julia-скрипт, а некоторые другие будут кодировать модуль. Поэтому я хочу ограничить его право держать список в безопасности, в этом случае он может просто добавить элементы.
'глобального addElementFunc = fn', а также' функция выполнения (Arg :: Кортеж) addElementFunc (аргумент ...) end' –
@RezaAfzalan Есть ли другой способ, кроме 'арга .. .'. Я предпочитаю использовать объект как указатель функции в C. – Yves
'addElementFunc (arg ...) === apply (addElementFunc, arg)' –