Konvence pro skriptovací jazyk: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
m (naimportována 1 revize) |
|||
Řádek 256: | Řádek 256: | ||
*Pokud před dokončením jednoho průchodu cyklem víme, že nemůžeme získat potřebný výsledek, pokročíme rovnou na další index pomocí příkazu <code>continue</code> | *Pokud před dokončením jednoho průchodu cyklem víme, že nemůžeme získat potřebný výsledek, pokročíme rovnou na další index pomocí příkazu <code>continue</code> | ||
|} | |} | ||
+ | [[Category: enTeam skripty]] |
Verze z 22. 12. 2020, 21:33
Tento dokument popisuje konvence skriptovacího jazyka
Obsah
Deklarace externích funkcí
- Bez odsazení
- Mezery před a za názvem knihovny
- Deklarace nezalamujeme
- Za blokem deklarací vynecháme jeden řádek
declare function GetCurrency dll"ActualDocument"(string): currency // Špatně
declare function GetCurrency dll "ActualDocument" (string): currency // OK
Název skriptu
- Bez odsazení
- Bez mezer kolem
()
- Název začíná velkým písmenem, ostatní písmena jsou malá, s výjimkou počátečních písmen dalších slov
- Standardně pojmenování v angličtině, pokud ale jsou historicky skripty v upravovaném workflow pojmenovány česky, můžeme při úpravách pojmenovávat nadále v češtině
script Get_currency_code(): string // Špatně script GetCurrencyCode () : string // Špatně
script GetCurrencyCode(): string // OK
Klíčová slova
- Klíčová slova (zvýrazněná v editoru), např. názvy typů, píšeme vždy malými písmeny
- Pozor na klíčové slovo
nounload
, které se nezvýrazňuje
String, Integer, ActualDocument, Result // Špatně
string, integer, actualdocument, result // OK
Lokální proměnné
- Deklarace první proměnné je vždy pod klíčovým slovem
var
, nikdy ne na stejné řádce - Odsazení 2 mezery
- Na stejné řádce vždy pouze úzce související proměnné (např. souřadnice
X
,Y
) - Mezera za znaky
,
, resp.:
, nikdy ne před těmito znaky - Proměnné pojmenováváme vždy popisnými jmény, nepojmenováváme pouze jedním písmenem (výjimkou mohou být např. souřadnice
X
,Y
, řídící proměnné cyklůI
,J
atpod.) - Proměnné pojmenováváme malými písmeny, pouze počáteční písmena slov jsou velká (platí i pro globální proměnné)
- V názvech nepoužíváme podtržítka (platí i pro globální proměnné)
- Pro proměnné, které mají neočekávaný typ, používáme prefixy psané malými písmeny
Typ | Prefix |
---|---|
string
|
s |
integer
|
i |
boolean
|
b |
date
|
d |
currency
|
c |
user
|
u |
usercollection
|
uc |
- Nepoužíváme lokální listové proměnné (
stringlist
,integerlist
, …), protože nefungují správně
var Count: integer // Špatné odsazení, schází zalomení S_Count: string // Špatné pojmenování proměnné
var Count: integer // OK sCount: string // OK
Lokální konstanty
- Konstanty zapisujeme do sekce
var
, protože sekci pro konstanty skriptovací jazyk nepodporuje - Konstanty v sekci zapisujeme před proměnné a mezi konstantami a proměnnými vždy vynecháme prázdný řádek
- Konstanty pro odlišení pojmenováváme pouze velkými písmeny, pro oddělení slov používáme podtržítko
- Je vhodné pro přehlednost všechny konstanty nadefinovat hned na začátku skriptu
var ItemCount: integer // Špatné pojmenování konstanty, označuje proměnnou
var ITEM_COUNT: integer // OK
Tok skriptu
- Odsazení na 2 mezery
- Maximální délka řádku 80 znaků
- Tolerovat lze nezalomení do 100 znaků
- Při zalomení řádku je na dalším řádku (řádcích) odsazení 4 mezery
- Zalamování je vhodné za oddělovači (
, :
), binárními operátory (+ - * / = := += -= ++= or and, ...
) nebo za( [
// Špatně I := 0 J := 0 if I > 0 then J += 1 end
// OK I := 0 J := 0 if I > 0 then J += 1 end
Komentáře
- Komentáře se zarovnávají stejně jako kód skriptu
- Za uvozením komentáře vložíme mezeru a začneme velkým písmenem
- U víceřádkového komentáře nepoužíváme
//
a komentář zarovnáme do bloku
//špatně /* Také špatně */
// Toto je správně /* Také správně */
Výrazy
- Vkládáme jednu mezeru před i za operátor
- Nevkládáme zbytečné závorky
- Výjimkou jsou logické výrazy obsahující více podmínek, kde zápis bez závorek ztrácí na přehlednosti
// Špatně I:=J+5 if (I = 0) then if I = 0 and J = 0 then
// OK I := J + 5 if I = 0 then if (I = 0) and (J = 0) then
Ukončení příkazů
- Koncový
end
je vždy zarovnán stejně jako příkaz, ke kterému se váže - Blok kódu pod tento příkaz spadající je oproti příkazu odsazen o 2 mezery
// Špatně if I = 0 then I += 1 end
// OK if I = 0 then I += 1 end
Příkazy
Příkaz if (else)
- Blok kódu pod tento příkaz spadající je oproti příkazu odsazen o 2 znaky
- Pokud je testována jedna proměnná na více hodnot, používáme pro přehlednost i zvýšení výkonu
else
větev- Toto neplatí, pokud se řídící proměnná podmínky může změnit v kódu spadajícím pod předchozí podmínku
if I < 0 then write("Záporné číslo") end if I = 0 then write("Nula") end if I > 0 then write("Kladné číslo") end
if I < 0 then write("Záporné číslo") else if I = 0 then write("Nula") else write("Kladné číslo") end end
Příkaz case
- Protože příkaz
case
nefunguje správně, je nutné použít sadu podmínekif
!!! - Pokud je velké množství porovnávaných hodnot a docházelo by k velkému zanoření kódu kvůli cyklickému odsazení
else
větví, je možné použít cykluswhile true do
se sadou podmínek, kdy každá obsahuje příkazbreak
pro ukončení cyklu a ukončení porovnávání hodnot- Pokud bude zapomenut příkaz break, skončí skript v nekonečné smyčce
while true do if I = 0 then write("Nula") break end if I = 1 then write("Jedna") break end if I = 2 then write("Dva") break end // Else větev write("Neznámé číslo") break end
Cykly while do, for to do, foreach do
- Pokud známe potřebný výsledek před dokončením všech obrátek cyklu, vždy jej předčasně ukončíme příkazem
break
- Pokud před dokončením jednoho průchodu cyklem víme, že nemůžeme získat potřebný výsledek, pokročíme rovnou na další index pomocí příkazu
continue