Jump to content

Dúvidas básicas sobre programação


Recommended Posts

Qual a diferença de eu fazer:

bindKey("backspace", "down", function()
    if open_panel == true then 
        removeEventHandler("onClientRender", getRootElement(), panel)
    end
end)

para: 

function fecharPainel ()
    if open_panel == true then 
        removeEventHandler("onClientRender", getRootElement(), panel)
    end
end
bindKey("backspace", "down", fecharPainel)

ou para:

local function fecharPainel ()
    if open_panel == true then 
        removeEventHandler("onClientRender", getRootElement(), panel)
    end
end
bindKey("backspace", "down", fecharPainel)

Quem tiver bom coração me ajuda ai que são coisas que para a maioria das pessoas parece ser besta mais pra mim é uma coisa difícil

Link to comment
  • Other Languages Moderators

A primeira forma é mais direta, você não declara o nome da função. É mais fácil, porém você não vai conseguir dar unbind depois, pois não terá o nome da função para desbindar. Ideal para quando você quer dar binds permanentes, que não serão desbindadas depois. Essa forma também não permite que você chame por outras formas, por exemplo via comando.

A segunda forma resolve todas as limitações da primeira, porém você precisa declarar um nome para a função. Normalmente essa é a forma mais usada.

A terceira forma com função local é usada somente por usuários avançados em situações específicas. Funções locais não funcionam fora de seu escopo, porém são um pouco mais leves do que as funções globais, pois elas são apagadas da memória depois que o programa sai do escopo em que elas foram criadas. Também são mais difíceis de hackear com scripts de terceiros que reescrevem sua função.

 

Eu particularmente uso mais a primeira e segunda forma.

  • Thanks 1
Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...