Ruby-string met $ {...}

In de Ruby-string:

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

is $ {i} het exacte argument in de opdracht die dit specifieke bestand heeft aangeroepen.

Probeerde op internet te zoeken naar 'Ruby $ {0}', maar de zoekmachines houden niet van niet-alfanumerieke tekens.

Heeft een Ruby-boek geraadpleegd dat zegt dat # {...} de resultaten van de code in de accolades zal vervangen, maar dit vermeldt niet $ {...}, is dit een speciale syntaxis om argvalues ​​in een string te vervangen, heel erg bedankt ,

Joel

0
Ik weet niet zeker waar je precies naar vraagt, maar dat lijkt niet het gedrag van robijnen snaren te zijn.
toegevoegd de auteur Jakub Hampl, de bron
$ 0 is het scriptbestand, maar args bevinden zich in ARGV. $ n waarbij n> 1 speciale wedstrijdvars zijn. Lijkt meer op bash of zoiets.
toegevoegd de auteur Dave Newton, de bron

1 antwoord

Zoals hierboven vermeld, zal $ {0} niets speciaals doen, $ 0 geeft de naam van het script, $ 1 geeft de eerste overeenkomst van een reguliere expressie .

Als u een opdrachtregelargument wilt interpoleren, doet u dit normaal gesproken:

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

ARGV is echter ook gealiast als $ * , dus u kunt ook schrijven

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

Misschien is daar de verwarring ontstaan?

4
toegevoegd