Help:Modules
Uiterlijk
- Module
- In naamruimte "Module".
- Naam: [[Module:<Naam>]]
- Pagina-inhoudsmodel wordt automatisch ingesteld op "Scribunto-module".
- Inhoud
- De volgende twee regels zijn vrijwel standaard, de "p" lijkt verplicht:
local p={}
-- (functies, properties, etc.)
return p
- De eerste creëert een object waar members (functies, properties) aan toegevoegd kunnen worden. De laatste regel sluit de objectdefinitie, en geeft de returnwaarde terug aan de aanroepende functie.
- Inspringen is belangrijk voor de leesbaarheid van de code, maar heeft geen invloed op de werking.
-- variabelen
-- ...
local p={}
function p.test()
return
end
return p
- Documentatie
- Naam: [[Module:<Naam>/doc]]
- Categorieën
- Door de volgende code in [[Module:<Naam>/doc]] te plaatsen worden zowel de module als de documentatie in de juiste categorie opgenomen:
<noinclude>[[Categorie:Moduledocumentatie]]</noinclude> <includeonly>[[Categorie:Module]]</includeonly>
- NB Het kan voorkomen dat een module niet meteen in Categorie:Module verschijnt; pas in zo'n geval een null-edit toe op de module.
- Modules zonder documentatie komen – via MediaWiki:Scribunto-doc-page-does-not-exist – automatisch in Categorie:Module en Categorie:Module zonder documentatie.
- Gebruik
{{#invoke|<Naam>|<functie>|<parameter 1>}}
- De returnwaarde
- komt op het scherm of wordt doorgegeven aan de aanroepende (module- danwel wiki-) functie, net zoals sjablonen dat doen;
mag rechte haken bevatten om een wikilink te vormen, maar het insluiten van een sjabloon is langs deze weg niet mogelijk!
- Testen
- In de Modulezandbak.
- Valkuilen
- één datatype, kan alles bevatten
- geen constanten beschikbaar
- declareren variabelen onmogelijk
- niet-bestaande variabelen geven "nil"
- array heet hier table
- functies kunnen meer dan één returnwaarde geven
- er mag meer dan een functie met dezelfde naam bestaan; de laatste wordt uitgevoerd
- And and AND are two different identifiers
- "functions are values"
- onbegrijpelijke foutmeldingen
- 3 verschillende (en lastige!) comment-codes:
-- this is a comment --[[ this is a multi-line comment. ]] --[[ dit ook --]] ---[[ dit niet!! --]]