Close
    Search Search

    Variável

    A variável é um valor nomeado em um script que pode conter um valor. Se você tentar acessar uma variável que ainda não foi definida, obterá o valor nil.

    1 impressão (variável) - nulo

    Ao contrário de outras linguagens, Lua não é fortemente tipada e, em vez disso, é tipada dinamicamente. Isso lhe dá muito mais liberdade do que linguagens fortemente tipadas, como Java, C ++ ou C. Você pode atribuir qualquer valor de qualquer tipo a qualquer variável, esteja ela definida ou não!



    Variável

    Atribuição de Variável

    Conteúdo

    Tipos de dados

    Os tipos de dados são apenas o que o nome diz, tipos de dados! No Roblox, temos acesso a vários tipos de dados:

    Tipo Descrição
    Booleano Representa verdadeiro ou falso
    função Uma função que você pode chamar
    Zero Nada nulo
    Número Usado para armazenar números
    Tanga Usado para armazenar textos, uma seqüência de caracteres Ex: "omg"
    mesa Um grupo de itens
    Fio Uma co-rotina
    Dados do usuário Valores não feitos em Lua

    Objetivo

    Variáveis ​​normais

    Variáveis ​​normais podem ser acessadas de qualquer parte de um script (você não pode usar uma variável antes de atribuir um valor a ela, então ela retorna nil), mas não pode ser compartilhada entre scripts. As variáveis ​​normais nunca devem ser usadas porque são mais lentas do que as variáveis ​​locais e não oferecem nenhuma vantagem sobre as variáveis ​​locais. [1]



    1 - Um exemplo de uma variável normal 2 3 pi = math.pi 4 5 print (pi) - 3.1415926535898

    Variáveis ​​locais

    Variáveis ​​locais têm escopo definido e só podem ser usadas dentro de seu escopo ou como upvalues. Você só pode ter 200 variáveis ​​locais por vez (porque Lua tem no máximo 200 registros), mas é quase impossível chegar a isso se estiver codificando de maneira normal.

    Variáveis ​​locais podem ser diferenciadas das globais por causa da palavra local colocada antes de seus nomes definidos.

    1 - Um exemplo de uma variável local 2 3 local pi = math.pi 4 5 print (pi) --3.1415926535898


    Variáveis ​​normais podem ser usadas entre escopos, enquanto variáveis ​​locais existem apenas dentro do escopo. Um escopo é, por exemplo, um loop ou uma função

    1 Foo = "bar" - Faz uma variável global 2 função DoStuff () 3 local Foo = "não bar" 4 imprimir (Foo) 5 fim 6 função DoOtherStuff () 7 Foo = "isto é bar" 8 fim 9 DoStuff ( ) - não bar 10 imprimir (Foo) - bar 11 DoOtherStuff () 12 imprimir (Foo) - isto é bar

    Variáveis ​​globais

    Variáveis ​​globais podem ser usadas entre scripts. Em outras palavras, você pode remover a limpeza de uma variável em um script e obter seu valor em outro script. Para poder criar variáveis ​​globais, você deve acessar a tabela global. _G Se você quiser fazer uma variável global, basta adicionar esse valor à tabela global:


    1 _G ["MyVariable"] = "Este é o valor"

    E então você pode fazer isso em outro script:


    1 impressão (_G.MyVariable) - Este é o valor

    Você precisa ter certeza de que o primeiro script é executado primeiro, embora você possa fazer isso adicionando um "wait ()" na linha superior do segundo script. Você também pode fazer funções globais.

    1 _G ["MyFunction"] = function () print ("Esta é a função") end

    E em outro script:

    1 _G.MyFunction ()

    Mais informações sobre como usar tabelas:

    Campos da tabela

    Os campos da tabela, embora se comportem de maneira diferente das variáveis ​​normais e das variáveis ​​locais, ainda são variáveis. [2]

    tabelas">Usando tabelas

    tabelas

    As tabelas são grupos de campos que podem ser acessados ​​usando a tabela. Para construir uma mesa, comece a tarefa normalmente ...

    1 local a =

    Em seguida, use chaves para mostrar que é uma tabela:

    1 local a = {}

    Para adicionar elementos à tabela diretamente no construtor da tabela, liste-os em ordem, assim:

    1 local a = {1,2,3}

    Para acessar um item em uma tabela, usamos algo chamado índice, que é uma espécie de nome de arquivo em um computador.

    Para encontrar a variável em um determinado índice, você usa os operadores de índice, [] e o nome da tabela, como este:


    1 nome da tabela local = {1,2,3} 2 3 imprimir (nome da tabela [índice])

    Agora, esse código não funcionaria porque você não pode indexar uma tabela com nil, no entanto, você pode indexá-la com todo o resto, como este exemplo:

    1 local tableName = {} 2 3 tableName [Workspace] = "Workspace" 4 5 tableName [game] = "game" 6 7 print (tableName [Workspace])

    Usando este método, você pode obter clientes de chat de jogadores, ferramentas, qualquer coisa!



    Para e tabelas

    Para iterar em uma tabela, você pode usar o loop for:

    1 local a = {1,2,3,4,5,6,7,8,9,10} 2 para i = 1, 10 faça 3 print (a [i]) 4 end

    Alguma saída:

    1

    2

    3

    4

    No entanto, às vezes, você não sabe o tamanho de uma tabela, um método é percorrer a tabela até chegar a um valor nulo:

    1 local a = {2,3,4,2,4,3,4,2,3,43,2,4,3,4,2,3,4,2,3} 2 para i = 1, matemática .huge faça 3 se a [i] == nil então break end 4 print (a [i]) 5 end

    No entanto, este método é muito ineficiente e pode falhar muito cedo, ou nem funcionar, como nesta tabela:

    1 local a = {1,2,3,4,2,5, nulo, 3,4,2,5} 2 para i = 1, math.huge faça 3 se a [i] == nulo então quebre a extremidade 4 imprimir (a [i]) 5 final

    Para evitar isso, usamos o operador de comprimento, #

    1 local a = {2,3,4,2,5, nulo, 3,4,2,34,2} 2 para i = 1, #a faça 3 print (a [i]) 4 end

    Isso ignora a verificação manual que tínhamos que fazer antes e nos informa o comprimento da tabela. Isso pode ser usado para selecionar jogadores aleatórios, como:

    1 PlayerList local = game.Players: GetChildren () 2 RandomPlayer local = PlayerList [math.random (1, # PlayerList)]

    Você também pode usar o operador de comprimento para obter o número de peças no nível superior do espaço de trabalho:

    1 impressão (#Workspace: GetChildren ())

    Como você deve saber, o código anterior funciona porque estamos obtendo o comprimento da tabela retornada, não o espaço de trabalho. Observe que o operador de comprimento não funciona diretamente nos dados do usuário [objetos roblox, instâncias].

    Variáveis ​​de função

    Funções são as tabelas de código, ou em outras palavras, grupos de código. As funções são os blocos de construção e os organizadores do código que fornecem uma maneira de reutilizar o código indefinidamente sem ter que digitar tudo. As funções também são usadas para obter filhos recursivamente, definir propriedades, calcular coisas e outras atividades divertidas. material. Aqui está um exemplo de função:

    1 função a () 2 3 fim

    Visto que funções podem computar coisas, por que não criamos uma função que produza um valor?

    1 local b = 0 2 função a () 3 b = b + 1 4 fim 5 impressão (b) 6 a () 7 impressão (b)

    Hmm ... Essa função poderia ser melhor, vamos usar a palavra-chave return!

    1 local b = 0 2 função a () 3 b = b + 1 4 return b 5 end 6 print (a (), a (), a (), a ())

    O motivo pelo qual adicionamos à nossa variável b primeiro é que, assim que você retorna de uma função, sua função para de funcionar.

    1 função a () 2 se verdadeiro então retorna end 3 print ("Isso nunca será executado.") 4 end 5 a ()

    No código acima, a função a retorna antes de chegarmos à chamada para a função print. Isso significa que você não verá a impressão a menos que remova a devolução.

    Outra coisa que você deve saber sobre a palavra-chave return é que você só pode colocá-la antes de uma palavra-chave final. Colocar um retorno no meio do seu código só é permitido se você colocar o retorno dentro de uma instrução [algo que usa um fim].

    1 função a () 2 retorna end 3 print ("Você não verá isso. O retorno está dentro de uma instrução do.") 4 end 5 a () 6 7 --- E um exemplo quebrado 8 função a () 9 return 10 print ("Este código apresentará erro.") 11 end 12 a ()

    Como você pode ver, o segundo exemplo não funciona porque temos um retorno no meio. Isso não apenas torna o código mais difícil de ler, mas também causa um erro.

    Referências

    1. ↑ Dicas de desempenho de Roberto Ierusalimschy Lua
    2. ↑ R. Ierusalimschy, LH de Figueiredo, W. Celes; Lua 5.1 Reference Manual, Lua.org, agosto de 2006; ISBN 85-903798-3-3
    Adicione um comentário do Variável
    Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.