Em exemplos anteriores utilizamos a print para impressão de dados, mas essa função não possui suporte a
formatação além da impressão em forma tabular.
Para exibição de dados formatados, Lua possui a função format que permite a utilização de caracteres de escape,
identificadores de formatação e outros.
Sintaxe
string.format(formatstring,...)
Onde
formatstring: string com identificadores de formatação
...: lista de argumentos que serão formatados
*l: lê um string. Formato padrão se format não especificado
number: quantidade de bytes lidos da entrada de dados
Identificadores básicos para formatação:
- %d: inteiro
- %f: float
- %s: string
- %x: hexadecimal
- %o: octal
- %q: valor entre aspas
Exemplo 6
--char
print(string.format("Char: %sello World",'H'))
-- string
print(string.format("Hello %s","World"))
--string entre aspas duplas
print(string.format("Hello %q","World"))
--inteiro
print(string.format("inteiro: %d",7))
--inteiro justificado a direita com 7 dígitos
print(string.format("%7d",7))
--inteiro justificado a esquerda com 7 dígitos
print(string.format("%-7d outras informações",7))
--inteiro justificado a direita com 0
print(string.format("%08d",7))
--octal
print(string.format("%o",8))
--hexadecimal
print(string.format("%x", 255))
print(string.format("%02X", 10))
print(string.format("%04X", 256))
--float
print(string.format("%f", 7.777))
--arredondamento : 2 casas decimais
print(string.format("%.2f", 7.777))
Saída
Hello World
Hello World
Hello "World"
7
7
7 outras informações
00000007
10
ff
0A
0100
7.777000
7.78