** "Ressemble à JavaScript, le cerveau (contenu) est Ruby, (la stabilité est AC / DC)" ** Langage de script Kinx ). La langue est la bibliothèque. Alors, comment utiliser la bibliothèque.
Cette fois, c'est Getopt. Je l'ai implémenté en interne dans SpecTest et je l'ai utilisé, mais je l'ai déplacé vers la bibliothèque standard.
Il prend également en charge l'option longue (~~ je ne l'ai pas encore publié ... ~~ je l'ai publié).
Getopt - System.getopt
Spécifiez le tableau d'options, la chaîne d'options et l'objet d'option long à l'emplacement de l'expression conditionnelle de l'instruction while comme indiqué ci-dessous. L'objet d'option long est facultatif.
var opt, add, check;
while (opt = System.getopt($$, "a:df", { add: 'a', delete: 'd', help: null, "do-check": '=' })) {
switch (opt.type) {
case 'a': // '--add'Mais'a'Est retourné.
add = opt.arg; // ':'La spécification indique qu'il y a un argument.
System.println('-a with "%{add}"');
break;
case 'd': // '--delete'Mais'd'Est retourné.
System.println('-d');
break;
case 'f': // '-f'Revenez avec.
System.println('-f');
break;
case 'help': // '--help'Revenez avec.
System.println('--help');
break;
case 'do-check': // '--do-check'Revenez avec.
check = opt.arg; // '='La spécification indique qu'il y a un argument.
System.println('--do-check with "%{check}"');
break;
case '-': //Si ce n'était pas une option, venez ici.
list.push(opt.arg);
break;
}
}
//Afficher autre que les options
System.println("Program options: ", list);
--long-option = argument
. Dans le cas de l'option longue, un argument de chaîne de caractères vide est autorisé.Lorsque l'échantillon précédent est utilisé, cela devient comme suit.
$ ./kinx examples/option.kx -d -a arg
-d
-a with "arg"
Program options: ["examples/option.kx"]
$ ./kinx examples/option.kx -da arg
-d
-a with "arg"
Program options: ["examples/option.kx"]
$ ./kinx examples/option.kx -daarg
-d
-a with "arg"
Program options: ["examples/option.kx"]
$ ./kinx examples/option.kx --help something
--help
Program options: ["examples/option.kx", "something"]
$ ./kinx examples/option.kx --do-check=
--do-check with ""
Program options: ["examples/option.kx"]
$ ./kinx examples/option.kx --do-check=abc
--do-check with "abc"
Program options: ["examples/option.kx"]
$ ./kinx examples/option.kx -a
Uncaught exception: No one catch the exception.
ArgumentException: Needs an argument for -a
Stack Trace Information:
at <main-block>(examples/option.kx:2)
$ ./kinx examples/option.kx --unknown
Uncaught exception: No one catch the exception.
ArgumentException: Unknown option: --unknown
Stack Trace Information:
at <main-block>(examples/option.kx:2)
Il existe différentes méthodes d'analyse des options, et getopt
a une longue histoire, mais il est toujours actif. Du point de vue de ** Le plus approprié pour les programmeurs C **, je pense que getopt
est facile à utiliser.
Boost :: program_options
est également difficile à jeter dans le sens où vous pouvez obtenir de l'aide. Le premier est le support de System.getopt
dans le sens où vous pouvez faire le strict minimum. Des choses plus utiles peuvent sortir dans le futur (où?).
À la prochaine.