функции в функцию

Страницы: 1
RSS
функции в функцию
 
Привет всем!
Скажите пожалуйста, возможно ли в lua как то организовать вот такое?
Есть у нас в коде много функций
Код
    function One()
        bla
    end
    ---
    function Two()
        bla
    end
    ---
    function Three()
        bla
    end
    ---
    function Four()
        bla
    end
    ---
    function Five()
        bla
    end
    ---
    function Six()
        bla
    end
    ---
    function Seven()
        bla
    end
    ---

далее есть основная функция, здесь я пример  очень коротко изобразил,но думаю смысл понятен,где стоят вопросы-туда надо вставлять определенные функции
И вот вопрос: возможно ли это реализовать как то с одной функцией
Код
    function main(fun_1(???),fun_2(???))
        if something then
            --fun_1(????????) 
        else
            --fun_2(????????)
        end
    end
 

 Что бы это выглядело примерно так  
Код
   
    if     bla_1 then
        main(One(),Two())
    elseif bla_2 then
        main(Three(),Four())
    elseif bla_3 then
        main(Five(),Four())
    elseif bla_4 then
        main(Six(),Seven())
    elseif bla_5 then
        main(Seven(),One())
    end


Думаю объяснил понятно
 
Цитата
Archie_ написал:
Думаю объяснил понятно
Ну так как вы написали, только скобки у ф-ций в аргументах уберите, и будет работать.
Код
function main(fun_1, fun_2)
    if something then
        --fun_1(????????)
    else
        --fun_2(????????)
    end
end

if     bla_1 then
    main(One, Two)
elseif bla_2 then
    main(Three, Four)
elseif bla_3 then
    main(Five, Four)
elseif bla_4 then
    main(Six, Seven)
elseif bla_5 then
    main(Seven, One)
end
 
Цитата
Suntor написал:
Ну так как вы написали, только скобки у ф-ций в аргументах уберите, и будет работать.

Так а что прописать в самой функции?
Код
function main(fun_1, fun_2)
    if something then
        fun_1()--вот здесь что прописать? если прописано fun_1() , то получим ошибку:   attempt to call a nil value (local 'fun_1')
    else
        --fun_2(????????) -- ну и здесь
    end
end
 
Цитата
Archie_ написал:
если прописано fun_1() , то получим ошибку:   attempt to call a nil value (local 'fun_1')
Где-то у вас ошибка значит при вызове main, не подставили правильный аргумент. Вот код, компилируется и работает:
Код
function one()
    print("one")
end

function two()
    print("two")
end

function main(fun_1, fun_2)
        fun_1()
        fun_2()
end

main(one, two)
Вывод:
Код
one
two
Страницы: 1
Читают тему
Наверх