Close
    Search Search

    Tutorial: funções para iniciantes

    Tutorial: funções para iniciantes

    Este é um tutorial rápido sobre o uso de funções em Lua para iniciantes. Este tutorial ensina sobre a anatomia das declarações de função em Lua e tem como objetivo ajudar a guiá-lo no processo de aprendizado usando exemplos com explicações.


    Tutorial 1: Funções básicas

    As funções são usadas para repetir o mesmo processo várias vezes no código. Eles são úteis para fazer iterações personalizadas. As iterações são basicamente performances repetidas, e em Lua; eles são comumente usados ​​para percorrer listas (geralmente longas) de itens e fazer certas coisas com eles. O ato de fazer funções é chamado de "chamá-las" (por exemplo, "chamei a função 1 primeiro, depois a função 2.")


    As declarações de funções (fazer uma função) são simples, mas requerem reflexão. A primeira etapa é realmente declarar o Lua a palavra-chave "função", o nome da função e os parênteses. Depois disso, seu código é colocado com todas as ações que você deseja fazer em seu código. Para finalizar, basta usar o Lua palavra-chave "fim". Nomear funções é exatamente a mesma coisa que nomear variáveis, portanto, apenas letras, números e o sublinhado (_) podem ser usados ​​em nomes de função, pois os nomes de função ocupam o variável nome (por exemplo, se você tiver uma função chamada "ticktock", você irá sobrescrever a função se atribuir o variável "tique-taque" para algo).


    Este primeiro exemplo é uma função ticker. Um ticker simplesmente adiciona um número quando clicado, então esta função irá adicionar a uma variável e imprimir uma mensagem "Tick!" quando chamado.

    x = 0 - definir x como 0 função myTicker () --name é "myTicker" x = x + 1 --adicionar 1 a x print ("Tick!") final

    É muito simples de fazer, uma vez que você entenda como funcioná-lo. Isso é simplesmente definir a função, ela ainda não foi executada ou chamada. Para chamar uma função, você simplesmente declara o nome da função com parênteses após o nome. Quando você chama uma função, ela não é executada até que a função seja concluída e, em seguida, retorna à linha em que você a chamou.


    print (x) -> 0 myTicker () -> Tick! print (x) -> 1 myTicker () -> Tick! print (x) -> 2 myTicker () -> Tick! myTicker () -> Tick! imprimir (x) -> 4

    Este é o uso básico de funções no normal Lua. As funções são úteis para realizar grandes ações de uma vez, como em locais de minijogo e o minijogo é mais complexo.

    Tutorial 2: funções com um argumento

    Não, funções não têm desacordos.

    Às vezes, você precisa passar dados para uma determinada função sem usar um variável. Talvez você tenha uma fórmula de experiência e precise saber em que nível está baseado no número de experiências que possui. Funções que possuem argumentos o ajudarão com isso.


    Nos últimos exemplos, você pode ver que após o nome da função frequentemente há dois parênteses sem nada neles. Isso mostra que não há argumentos para a função. Argumentos são pedaços de dados enviados a uma função para alterar seu funcionamento. Os argumentos devem ser definidos em funções em Lua declarando uma lista de variáveis ​​entre parênteses do nome da função ao declará-la. Igual a:

    x = 0 - definir x como 0 função myTicker (y) --name é "myTicker", com um argumento "y" x = x + y --add y to x print ("Tick!") final

    Esta função agora usa um variável, "y" como um argumento. A função agora adiciona y ax quando a função é chamada. Se y não for fornecido, ou se não for um número, o código apresentará um erro. Normalmente, as funções verificarão isso se estiverem usando a entrada do usuário. Quando você vai chamar uma função com argumentos, você simplesmente coloca o variáveis ou dados diretamente no parêntese da função. Aqui estão alguns exemplos de chamadas. imprimir (x) -> 0


    myTicker (1) -> Tick! print (x) -> 1 myTicker (2) -> Tick! print (x) -> 3 myTicker (3) -> Tick! myTicker (1) -> Tick! imprimir (x) -> 7

    Tutorial 3: Funções com mais argumentos

    O último exemplo usou apenas um argumento. E se você quiser enviar mais dados para uma função? Você usa mais de um argumento. É possível que uma função use argumentos infinitos (lembra como print () aceita argumentos infinitos?). As funções não precisam necessariamente usar nenhum argumento fornecido a elas. Não causaria erros. Aqui está a função ticker novamente, usando apenas três argumentos.


    x = 0 - definir x como 0 função myTicker (a, b, c) --name é "myTicker", com três argumentos "a", "b" e "c" x = x + a + b + c --adicionar a, b e c para x imprimir ("Assinale!") final

    Como qualquer função que usa todos variáveis passado a ele, ocorrerá um erro se a função for chamada sem todos os dados necessários.

    print (x) -> 0 myTicker (1, 0, 0) -> Tick! print (x) -> 1 myTicker (1, 1, 0) -> Tick! print (x) -> 3 myTicker (1, 1, 1) -> Tick! myTicker (0, 0, 3) -> Tick! imprimir (x) -> 9

    Se você quiser declarar erros mais precisos se houver dados faltando em uma chamada de função, você pode usar a função de biblioteca "assert" que causará erros se o primeiro argumento for zero or falso. Aqui está a função novamente, mas com alguma segurança adicionada a ela para torná-la mais precisa com seus erros.


    função myTicker (a, b, c) --nome é "myTicker", com três argumentos "a", "b" e "c" assert (a, "a não foi fornecido") - "a" existe? assert (b, "b não foi fornecido") --existe "b"? assert (c, "c não foi fornecido") --existe "c"? assert (type (a) == "número", "a não é um número") - "a" é um número? assert (type (b) == "número", "b não é um número") - "b" é um número? assert (type (c) == "número", "c não é um número") - "c" é um número? x = x + a + b + c --adicionar a, b e c para imprimir x ("Marque!") final



    Cada pré-fabricado Lua função verifica seus argumentos antes de fazer qualquer coisa com eles. As funções devem sempre lidar com os erros de forma adequada em Lua. Isto faz Lua mais simples e fácil de usar, exatamente como deveria ser feito.

    Adicione um comentário do Tutorial: funções para iniciantes
    Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.