Jump to content
MediaWiki

Příručka:Konvence pro psaní kódu/Lua

From mediawiki.org
This page is a translated version of the page Manual:Coding conventions/Lua and the translation is 100% complete.
Toto je esej. Vyjadřuje názory a nápady některých uživatelů mediawiki.org, ale nemusí mít širokou podporu. Neváhejte a aktualizujte tuto stránku podle potřeby nebo použijte diskusní stránku a navrhněte zásadní změny.

Mezery

  1. Pro odsazení použijte tabulátory. Dříve jsme používali 4 mezery, ale nyní jsme přešli na tabulátory poté, co se změnilo výchozí chování editoru kódu Wikipedie.
  2. Pokuste se omezit délku jednoho řádku, aby lidé s menšími monitory mohli kód snadno přečíst.
  3. Při volání funkce nebo indexování pole nebo slovníku se vyhněte nadbytečným mezerám. Bezprostředně před nebo uvnitř hranatého znaku ([, (, { a jejich shody) by se neměly používat žádné mezery.
-- Yes:
hi={1,2,3}
foo(hi[1],blah['a'])
-- No:
hi={1,2,3}
foo(hi[1],blah['a'])
blah['b']=hi[3]
foo(0,'')

Řídící tok

Vkládání více příkazů na jeden řádek se nedoporučuje, pokud výraz není příliš krátký. Pokuste se tomu vyhnout i u vícečlenných výroků.

-- Ano:
if1then
foo()
bar()
else
baz()
end
if1thenfoo()end
foo();bar();baz();
-- Ne:
if1thenfoo();bar();elsebaz();end
if1thenfoo();bar();baz();
elselorem();ipsum();end
foo();bar();baz();spam();eggs();lorem();ipsum();dolor();sit();amet();

Pokud by byl jeden řádek příliš dlouhý, můžete velký příkaz rozdělit na více řádků s předsazeným odsazením, které je zarovnáno s oddělovačem otevření. Pro výpisy if by měly být podmínky umístěny na dalším řádku.

-- Example:
hello=long_function_name(var_one,var_two,
var_three,var_four)
if((condition1
orcondition2)
andcondition3
andcondition4)then
foo()
bar()
baz()
end

Konvence pojmenování

Definujte metodu zadávání jako jednoduché rozbalení parametrů z rámce a jejich předání přes funkci se stejným názvem s předponou jedním podtržítkem. To lze ignorovat, pokud je funkce užitečná pouze z wikitextu nebo pokud potřebuje rámec pro něco jiného, než jsou její argumenty.

Ve standardní knihovně se názvy funkcí skládající se z více slov jednoduše skládají dohromady (např. setmetatable). Všimněte si, že camelCase je preferovaný způsob pojmenování funkcí, abyste se vyhnuli potenciálním garden-path názvům funkcí.

-- See https://en.wikipedia.org/w/index.php?oldid=540791109 for code
localp={}
functionp._url(url,text)
-- Code goes here
end
functionp.url(frame)
-- Take parameters out of the frame and pass them to p._url(). Return the result.
-- Adapt the below code to your specific template arguments
localtemplateArgs=frame.args
localurl=templateArgs[1]or''
localtext=templateArgs[2]or''
returnp._url(url,text)
end
returnp

Zvýraznění kódu Lua

Mimo modul (jako na talkpages) lze zvýraznění kódu přidat pomocí tagu <syntaxhighlight> s atributem lang="lua":

<syntaxhighlight lang="lua"
--code snippet
 function p.main()
 return "Hello world"
 end
</syntaxhighlight>

Zobrazí se:

--code snippet
functionp.main()
return"Hello world"
end


Související odkazy

AltStyle によって変換されたページ (->オリジナル) /