Problème
Vous disposez de JSL pouvant être utilisés dans plusieurs projets, avec des modifications mineures, et vous souhaitez conserver une copie pour en faciliter la maintenance.
Solution
Utilisez un fichier séparé et incluez-le dans un programme principal. Utilisez des espaces de noms pour garder les variables isolées des autres modules. Construisez les espaces de noms pour que le programme principal puisse ajouter des personnalisations.
// "example.jsl" reusable, extensible module
example = New Namespace( "example" ); // namespace to hold the reusable code
example:aaa = 1; // a variable in the namespace
// this represents the extensible part of the module
example:uuu = Function( {p}, Return( p ) ); // no transform by default
// this represents the reusable part of the module
example:fff = Function( {p}, // do something amazing
example:aaa += 1;
Return( example:uuu( p ) * example:aaa );
);
// "mainprog.jsl" uses the example code, and extends it
Include( "example.jsl" );
// this function replaces the default
example:uuu = Function( {p},
Return( Sqrt( p ) )
);
// use the amazing code from the package
p = example:fff( 16 );
q = example:fff( 9 );
r = example:fff( 4 );
Show( p, q, r );
Discussion
Vous voudrez peut-être ajouter un exemple: init (paramètres) fonction que vous appelez après l’inclusion pour effectuer une configuration unique. Ou, s'il n'y a pas de paramètres, vous pouvez effectuer la configuration unique dans le fichier example.jsl.
Voir également
Scripting index décrit plusieurs paramètres supplémentaires.