2011-11-12 3 views
0

Dans la chaîne Ruby:

"${0} ${1} ${2:hello}" 

est-${i} l'argument ième dans la commande qui a appelé ce dossier.

J'ai essayé de chercher "Ruby $ {0}" sur le Web, mais les moteurs de recherche n'aiment pas les caractères non-alphanumériques.

Nous avons consulté un livre Ruby qui dit que # {...} va remplacer les résultats du code dans les accolades, mais cela ne mentionne pas $ {...}, est-ce une syntaxe spéciale pour remplacer argvalues ​​dans une chaîne , merci beaucoup,

Joel

+0

Je ne sais pas exactement de quoi vous parlez, mais cela ne semble pas être le comportement des rubis. –

+0

$ 0 est le fichier de script, mais les arguments sont en ARGV. $ n où n> 1 sont des variables de match spéciales. Ressemble plus à bash ou à quelque chose. –

Répondre

4

Comme mentionné ci-dessus ${0} fera rien de spécial, $0 donne le nom du script, $1 donne le premier match d'une expression régulière.

interpoler un argument de ligne de commande que vous auriez normalement faire ceci:

puts "first argument = #{ARGV[0]}" 

Cependant, ARGV est également Lissé comme $* vous pouvez donc aussi écrire

puts "first argument = #{$*[0]}" 

Peut-être est là que la confusion se ?

Questions connexes