[JAVA] Bibliothèque Kinx --Obtenir

Bibliothèque Kinx --Obtenir

introduction

** "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

Comment utiliser

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);

Détails de la chaîne d'option

Détails de l'option longue

Exécutez l'exemple

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)

en conclusion

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.

Recommended Posts

Bibliothèque Kinx --Obtenir
Bibliothèque Kinx - REPL
Bibliothèque Kinx --DateTime
Bibliothèque Kinx - Processus
Bibliothèque de compilateur Kinx Library-JIT
Bibliothèque de compilateur Kinx Library-JIT (édition supplémentaire)