×

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
  • /
  • Archives
  • /
  • Seção Editor de Mapas e Modules
  • /
  • [Tutorial] Padrões
[Tutorial] Padrões
Hydroper
« Citoyen »
1487507940000
    • Hydroper#0528
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Padrões

Lua oferece padrões que podem ser aplicados em strings, geralmente úteis para fazer pequenas manipulações em strings. Esses padrões podem ser aplicados de 4 maneiras diferentes, utilizando as funções string.find(), string.gmatch(), string.gsub() e string.match(). Padrões são strings interpretadas por cada uma dessas funções.

Em cada operação, essas funções assumem cada byte sendo o código de cada caractere da string, incluindo o próprio padrão, e por isso podem não funcionar corretamente caso a string usa uma codificação de caracteres na qual códigos de caracteres são determinados de maneira diferente. Codificação de caracteres é apenas uma maneira de representar códigos de caracteres que depende dos bytes e do tamanho de bytes da string (embora algumas codificações tentam tratar cada código como diferente caractere, mas no Unicode cada caractere é definido por apenas um número e universalmente. Qualquer codificação pode representar caracteres do Unicode, etc...).

Um padrão tipicamente estrutura um formato, que pode estar presente numa string (por exemplo: (padrão) "%z" = (string) "Blah0"), isso é ocorrência. Cada função permite fazer diferentes ações com cada ocorrência. No exemplo abaixo é utilizado um padrão para encontrar a índice da primeira vogal A numa string. Isso é só para mostrar que um padrão pode representar conteúdo ocasionalmente.

Code Lua

1
print( ('AA') :find'A' ); -- Retornos: 1 (começo) e 1 (fim)

Padrões são também úteis para criar mensagens de erros mais interativas, sem precisar fazer um substituidor manualmente:

Code Lua

1
2
3
4
5
6
7
8
9
local mensagens = {
maiorQue = 'O número %1 é maior que %2.'
};

local nums = { 8e+9, 9e8 };

print(mensagens.maiorQue:gsub('%%(%d)', function(n)
return nums[ tonumber(n) ];
end));

Nesse exemplo o padrão caça as combinações do caractere % + um digito decimal dentro de uma captura.

Links relacionados do manual do Lua 5.1:

  • 5.4.1 - Padrões
  • string.find()
  • string.gmatch()
  • string.gsub()
  • string.match()
Brenower
« Censeur »
1487512500000
    • Brenower#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
bem incompleto o tutorial né
Hydroper
« Citoyen »
1487513760000
    • Hydroper#0528
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Brenower a dit :
bem incompleto o tutorial né

Resolvi não continuar por causa do meu irmão
Kiwrimai
« Consul »
1487539740000
    • Kiwrimai#0095
    • Profil
    • Derniers messages
#4
  0
Tópico trancado a pedido do autor.
  • Forums
  • /
  • Transformice
  • /
  • Archives
  • /
  • Seção Editor de Mapas e Modules
  • /
  • [Tutorial] Padrões
© Atelier801 2018

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

Version 1.27