2011-04-28 6 views
9

Je remarque que Node définit à la fois process.argv et process.ARGV (en majuscule). Ce dernier n'est pas mentionné dans la documentation et est, dans tous les cas, j'ai rencontré jusqu'à présent, le même objet.Node.js: process.argv vs. process.ARGV

Est-ce que ARGV est juste un hold-up historique, ou a-t-il un but?

Répondre

8

process.ARGV a été removed entirely depuis v0.5.10.

+5

Impossible de discuter avec les validations. :) –

4

Ils sont identiques:

node.cc

// process.argv 
Local<Array> arguments = Array::New(argc - option_end_index + 1); 
arguments->Set(Integer::New(0), String::New(argv[0])); 
for (j = 1, i = option_end_index; i < argc; j++, i++) { 
    Local<String> arg = String::New(argv[i]); 
    arguments->Set(Integer::New(j), arg); 
} 
// assign it 
process->Set(String::NewSymbol("ARGV"), arguments); 
process->Set(String::NewSymbol("argv"), arguments); 

Modifier (basé sur autre question):

Il n'y a qu'une seule personne qui peut vous dire que pour que (l'auteur) - vous pourriez être en mesure de le trouver sur IRC (irc.freenode.net #node.js). En regardant à travers les autres symboles, je suppose qu'il a été ajouté par souci de cohérence - argv et env semblent être les deux seuls qui ont des versions majuscules et minuscules. Cependant, ENV diffère légèrement de env. Peut-être que l'auteur pensait que argv et ARGV pourraient différer de la même manière que env et ENV?

+0

Merci, mais je me demande encore: Dans quel but? –

+0

+1 pour afficher le code source d'origine! Le nœud –

+1

vous avertit chaque fois que vous utilisez process.ENV: 'Use process.env au lieu de process.ENV'. Vraisemblablement, ceux-ci sont obsolètes mais conservés pour une compatibilité descendante. –

Questions connexes