Wikipedia:Guía de estilo de Lua
Esta páxina é un ensaio, non se trata dunha política ou guía oficial. Contén recomendacións ou opinións dun ou máis usuarios da Wikipedia. Algúns ensaios representan normas e usos amplamente aceptados pola comunidade, mentres que outros só representan puntos de vista minoritarios. Os ensaios teñen unha función orientativa e informativa, mais en ningún caso normativa. |
Esta é unha guía de estilo para o código Lua. Contén unha serie de recomendacións a ter en conta para desenvolver Módulos.
Espazos en branco
[editar a fonte]- Procure empregar tabulacións para a indentación.
- Procure limitar a lonxitude das liñas individuais para facilitar a lectura do código.
- Procure evitar espazos en branco sobrantes nas chamadas a funcións ou nas definicións de matrices. Procure evitar incluír espazos en branco inmediatamente antes ou dentro dos caracteres de parénteses ou chaves [ ] ( ) { }.
-- Si:
ola = {1, 2, 3}
foo(ola[1], blah['a'])
blah['b'] = ola[3]
foo(0,'')
-- Non:
ola = { 1, 2, 3 }
foo( hi[ 1 ], blah[ 'a' ] )
blah ['b'] = ola [3]
foo (0, '')
Control do fluxo
[editar a fonte]Procure non incluír sentenzas múltiples nunha soa liña, agás se a expresión é moi curta. Procure evitar as sentenzas con cláusulas múltiples tamén de ser posible.
-- Si:
if 1 then
foo()
bar()
else
baz()
end
if 1 then foo() end
foo(); bar(); baz();
-- Non:
if 1 then foo(); bar(); else baz(); end
if 1 then foo(); bar(); baz();
else lorem(); ipsum(); end
foo(); bar(); baz(); spam(); eggs(); lorem(); ipsum(); dolor(); sit(); amet();
Se unha liña faise demasiado longa, pode dividir as sentenzas longas en múltiples liñas indentadas, aliñadas aos delimitadores de apretura. Para sentenzas if as condicións deberían ir expresadas na liña seguinte.
-- Exemplo:
ola = nome_funcion_longa(var_un, var_dous,
var_tres, var_catro)
if ((condicion1
or condicion2)
and condicion3
and condicion4) then
foo()
bar()
baz()
end
Convención de nomes
[editar a fonte]Procure definir o método de entrada de forma sinxela desempaquetando os parámetros do marco, e pasándoos a través dunha función có mesmo nome e un guión baixo único. the entry method as simply unpacking the parameters from the frame, and then passing those through a function with the same name prefixed with a single underscore. Pode obviar isto cando as funcións sexan curtas e sinxelas.
local p = {}
function p._url(url, texto)
-- Liñas de código
end
function p.url(frame)
-- Saca os parámetros fora do marco e pásaos a p._url(). Retorna o resultado
-- Liñas de código
return p._url(url, texto)
end
return p
Resalte do código Lua
[editar a fonte]Fora do espazo de nomes "Módulo", o resalte de código pode facerse empregando a etiqueta HTML <syntaxhighlight> có atributo lang="lua"
:
<syntaxhighlight lang="lua"> --comentario function p.main() return "Ola mundo" end </syntaxhighlight>
Produce:
--comentario
function p.main()
return "Ola mundo"
end