×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Tutorial] Tipos de Valores
[Tutorial] Tipos de Valores
Boloprivate
« Citoyen »
1460769360000
    • Boloprivate#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  1

("Aprendendo os tipos de valores"):upper()


  Hola amigos. Cansado de ter um colega que diz str, int e etc e você jamais soube o significado? Bom. Aqui vou apresentar a você o que essas palavras significam.

String

String


  Uma string, muitas vezes abreviada em str é, "leigamente", uma linha de texto, seja com números, com unicodes, com caracteres especiais ou apenas letras. Você pode identifica-las observando os seguintes caracteres:

     • "Entre aspas duplas"
     • 'Entre aspas simples'
     • [[ Entre Colchetes ]]


  Muita gente se pergunta: Qual a diferença entre os três caracteres acima e qual a razão de existirem três ao invés de um. Bom, a resposta é muito simples.

  As aspas duplas ("), que são as mais usadas, permitem que você adicione aspas simples (') no meio da string economizando um caractere. O mesmo serve para as aspas simples, que permite que você adicione aspas duplas (") no meio da string. Apesar do fato de que você, em ambos os casos, pode usar a cadeia \" ou \' para adicionar o caractere. Por exemplo:

"Eu sou chamado de \"Bolo\" por causa do nick"
me retornaria
Eu sou chamado de "Bolo" por causa do nick
e o mesmo usando \'

  Já os colchetes duplos ( [[ ]] ) permitem que você adicione quebras de linhas (mais conhecidos como enters ou pular uma linha) sem que o código retorne um erro. Por exemplo:

"Isto
Retorna
Um
Erro"

[[ Já este aqui,
Não
Retorna
Erro
Algum! ]]


E você ainda pode usar esta técnica para comentários!

Veja
-- isto é um comentário simples

-- isto
retorna
um erro
pois há a quebra de linha sem que o código saiba que após a primeira linha o comentário continua


--[[ Caso fosse assim
Não retornaria
Erro
Algum! ]]




Number

Number


  Um number se traduz em Número, ou seja, não precisam ser uma string para funcionar e contam com três tipos diferentes, onde Number é a massa do sorvete, e esses tipos são o sabor da massa!
    Int é o nome dado aos números inteiros, ou seja, aqueles que não contém vírgula ou valores decimais. Por exemplo:

10 -- É inteiro!
154282656262 -- É inteiro!
-200 -- É inteiro!
10.5 -- Deixou de ser inteiro por conta do ".5" que significa 10 + 0.5, contendo um decimal.

    Já o Float é o tipo de número que contém decimal, ou seja, contém o "ponto" que simboliza a vírgula. Veja exemplos:

Antes do exemplo, leia esta dica!

Quando o número float se inicia com 0, você pode simplesmente exclui-lo, por exemplo:

0.5 vira .5 e continua funcionando. Teste:

print(10 + 0.5)
print(10 + .5)



10 -- Não é um float pois não tem decimal
42 -- Não é um float pois não tem decimal
10.6 -- É um float pois contém o decimal .6

    Temos também o tipo chamado Hexadecimal, mais conhecido como Hex ou Hexa, que nada mais é que as cores RGB em um formato mais rápido e prático, é com esse tipo de Number que o transformice customiza os itens. A característica notável é que antes do código da cor real, um 0x antecede-o, apesar de que, em alguns casos, o Hexadecimal é representado por #Código, sendo String, e não Number. Exemplos:

0xFFFFFF -- Simboliza a cor BRANCA em código, e é Number.
"#000000" -- Simboliza a cor PRETA em código, e é String, e não pode ser usado no lugar de cores (Como por exemplo, a função ui.addTextArea que pede a cor de fundo e borda) mas pode usado na configuração da string "<font color='#FFFFFF'>"

  Contas matemáticas podem ser feitas usando os seguintes operadores aritméticos:

     • A+B (Soma A com B)
     • A-B (Subtrai B de A)
     • A*B (Multiplica A por B)
     • A/B (Divide A por B)
     • A^B (Faz a exponencia de A por B (10^2 = 10²))
     • A^.5 (Retorna a raiz quadrada de A)
     • AeB (Retorna o número Euler (notação exponencial) entre A e B, ou seja, A*10^B)



Boolean

Boolean


  Um boolean, dito booleano pelos estrangeiros conservadores, retorna true caso o valor seja verdadeiro, existente e/ou ativo, podendo retornar false caso seja o oposto, ou seja, falso, inexistente e/ou desativado. Não são strings. Veja exemplos:

X = true
print(X) --Retorna true, pois o valor da variável chamada X é true
X = false
print(X) --Retorna false, pois o valor da variável chamada X é false
X = "Isto é uma string!"
print(X) --Retorna true, pois como eu disse antes, retornaria true caso fosse true ou existente, e como a variável X não é false, existe, logo, retorna true.




Table

Table


  O tipo chamado Table se traduz para Tabela, significa um lugar onde vários dados podem ser armazenados, dados de quaisquer tipo ou tamanho. São representados pelos caracteres chave ( {} ) e permitem que tenham seus valores declarados com quebras de linha. Exemplos:

Bolo_table = { -- Abri a tabela Bolo_table
 variavel1 = 200,
 variavel2 = "string & numbers!"
 variavel3 = { -- Abri uma tabela dentro de outra tabela
  a = 1,
  b = 2
 }
 casa = false
} Fechei a tabela


Também pode ser representado em uma linha:

Bolo_table={variavel1=200,variavel2="string & numbers!",variavel3={a=1,b=2},casa=false}

E para capturar um dado de dentro de uma tabela, basta chama-la utilizando um ponto (.) entre o nome dela, e a variável, veja:

print(Bolo_table.variavel1) -- Retorna 200, pois acessamos a tabela com o nome de Bolo_table e capturamos o valor de variavel1
print(Bolo_table.variavel3.b) -- Retorna 2, pois na tabela variavel3 que está dentro da tabela Bolo_table tem a variável b que tem o valor 2




Function

Function


  Uma function é traduzida para Função, é um sistema que permite o retorno e/ou atribuição de valores por meio de parâmetros, fazendo um código mais eficiente. Podem ser feitas usando dois esquemas:

     1. function Nome(valor) --Você cria uma função chamada Nome, e que recebe um parâmetro chamado valor
      return valor + 1 --Nessa função o parâmetro deve ser um número, e ao chama-la, retorna parâmetro+1 (Se parâmetro for 10, então retornará 11 no local onde você chamar)
     end E aqui você fecha a função


     2. Nome=function(valor) --Você cria uma função chamada Nome, e que recebe um parâmetro chamado valor
      return valor + 1 --Nessa função o parâmetro deve ser um número, e ao chama-la, retorna parâmetro+1 (Se parâmetro for 10, então retornará 11 no local onde você chamar)
     end E aqui você fecha a função


  Em ambos os casos a função funcionará corretamento, no entanto, mesmo sendo a menos usada, a função escrita com o esquema 2 é mais leve, já que, durante a execução do código no debug (/lua), todas as funções escritas com o esquema 1 é transformada para o esquema 2.

  Abaixo você pode ver uma função que faz uma conta matemática com o primeiro parâmetro, depois de transforma-lo em string e ser concatenado com o texto "x Ok Ok - Nelson Rubens".

tvFama = function(number)
 number = number * 10 + math.floor(number/2)
 return tostring(number) .. "x Ok Ok - Nelson Rubens"
end
print(tvFama(69)) -- Retornará "724x Ok Ok - Nelson Rubens"




  Há também outros tipos, como o nil que representa um valor nulo, sem valor, falso, o NaN que significa Not a Number (Não é um número), o Infinity, que representa um valor Infinito ( rapidamente representável por print(1/0) ), e também todos os outros que não funcionam no debug do Transformice, como o userdata.

  Há um tipo chamado Thread, no qual se define por Coroutines. Você pode ler mais sobre este tipo neste tópico.

Dernière modification le 1460821560000
Treasuredsoul
« Citoyen »
1460769540000
    • Treasuredsoul#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
Me ajudou mano, valeu. xD
Esh
« Censeur »
1460772900000
    • Esh#0095
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Threads estão sim disponíveis no jogo: eles representam coroutines;

    > exemplo = coroutine.create(function ()
      print("Eu sou um thread")
    end)
    > print(type(exemplo))
    >> thread

Quanto ao 0x, eles representam hexadecimais, por exemplo 0x3: o byte "3" que aparece no nome do cafofo da sua tribo. Outra coisa que eu queria apontar é o e, representando número X elevado a 10^Y;

    > print(2e2)
    >> 200
    > print(2*(10^2))
    >> 200

Squalleze
« Citoyen »
1460773860000
    • Squalleze#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
Eshkation a dit :
Threads estão sim disponíveis no jogo: eles representam coroutines;

    > exemplo = coroutine.create(function ()
      print("Eu sou um thread")
    end)
    > print(type(exemplo))
    >> thread

Quanto ao 0x, eles representam hexadecimais, por exemplo 0x3: o byte "3" que aparece no nome do cafofo da sua tribo. Outra coisa que eu queria apontar é o e, representando número X elevado a 10^Y;

    > print(2e2)
    >> 200
    > print(2*(10^2))
    >> 200


Não, essa coisa de haxadecimais que você falou não esta 100% certa, hexadecimal e um "formato" numérico com base 16, o do nome do cafofo basta um "\3", pq lua não utiliza base 16 e sim base 255 para encode de chars.
E esse "e" tem nome e é notação exponencial.

Amay o tópico.

Abiga, o thread funciona sim no debug do mice.

Dernière modification le 1460774280000
Esh
« Censeur »
1460774280000
    • Esh#0095
    • Profil
    • Derniers messages
    • Tribu
#5
  0
Squalleze a dit :
Eshkation a dit :
Threads estão sim disponíveis no jogo: eles representam coroutines;

    > exemplo = coroutine.create(function ()
      print("Eu sou um thread")
    end)
    > print(type(exemplo))
    >> thread

Quanto ao 0x, eles representam hexadecimais, por exemplo 0x3: o byte "3" que aparece no nome do cafofo da sua tribo. Outra coisa que eu queria apontar é o e, representando número X elevado a 10^Y;

    > print(2e2)
    >> 200
    > print(2*(10^2))
    >> 200


Não, essa coisa de haxadecimais que você falou não esta 100% certa, hexadecimal e um "formato" numérico com base 16, o do nome do cafofo basta um "\3", pq lua não utiliza base 16 e sim base 255 para encode de chars.
E esse "e" tem nome e é notação exponencial.

Opa, faltou uma explicação ali: 0x vai retornar o representante númerico(0x0f retorna 15), quando \ irá retornar o byte correspondente :p, falar que "e" é uma notação exponencial não resolve a dúvida do leitor(acaba causando mais!1!), que veio aqui pra aprender o que cada coisa é.
Zoeraven122
« Citoyen »
1460817300000
    • Zoeraven122#0000
    • Profil
    • Derniers messages
#6
  0
oq dar se agente clica no spoiler
Boloprivate
« Citoyen »
1460821560000
    • Boloprivate#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  0
Eshkation a dit :
Threads estão sim disponíveis no jogo: eles representam coroutines;

    > exemplo = coroutine.create(function ()
      print("Eu sou um thread")
    end)
    > print(type(exemplo))
    >> thread

Quanto ao 0x, eles representam hexadecimais, por exemplo 0x3: o byte "3" que aparece no nome do cafofo da sua tribo. Outra coisa que eu queria apontar é o e, representando número X elevado a 10^Y;

    > print(2e2)
    >> 200
    > print(2*(10^2))
    >> 200


Adicionei

zoeraven122 a dit :
oq dar se agente clica no spoiler

abre ele :p
Igortieni
« Citoyen »
1461046560000
    • Igortieni#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
belo tutorial, vai me ajudar bastante
Mescouleur
« Citoyen »
1466279460000
    • Mescouleur#0000
    • Profil
    • Derniers messages
#9
  0
Obregado Bolodef
Favelada
« Consul »
1475553000000
    • Favelada#6672
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Adorei o tópico, vou praticar os tipos de valores.
Refused
« Censeur »
1613210280000
    • Refused#0095
    • Profil
    • Derniers messages
    • Tribu
#11
  0
Excelente tópico!! Me ajudou bastante a entender várias coisas :DD
Essas informações são muito úteis e foram passadas de forma muito simples e clara eu curti muito. Os exemplos ajudaram muito também xDD
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Tutorial] Tipos de Valores
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27