Ruby: Stejným způsobem, jakým v Ruby předáváme argumenty metodám, můžeme je předávat i celým programům: Argumenty příkazového řádku pomocí ARGV
Pozadí
. Právě k tomu slouží argumenty příkazového řádku. Při každém spuštění našeho programu v jazyce Ruby můžeme zadat různé argumenty příkazového řádku a získat různé výsledky.
Proč se to učit?##
V lekci Ruby nazvané Vložení formuláře do formátovače jste použili gets.chomp
k tomu, abyste do svého programu v Ruby přivedli uživatelský vstup. Použití argumentů příkazového řádku přidává do vašeho opasku s nástroji Ruby nový nástroj, který můžete použít k tomu, abyste do svého programu dostali uživatelský vstup, pokud se tak rozhodnete.
Použití argumentů příkazového řádku##
Ruby zachycuje argumenty příkazového řádku pomocí speciálního pole s názvem ARGV
. Při zápisu uvnitř vašeho programu v jazyce Ruby ARGV
převezme příkaz příkazového řádku, který vypadá takto:ruby testing_argv.rb these are elements in the argv array
a vytvoří pole, které vypadá takto:
Teď to zkuste!
Vyzkoušejte ARGV##
- V aplikaci Sublime Text vytvořte soubor s názvem
testing_argv.rb
příkazem Soubor > Nový soubor … - Jakmile vytvoříte testovací soubor, nezapomeňte jej uložit na snadno dostupné místo a můžeme začít psát náš kód!
- Nastavte
ARGV
pro zachycení argumentů příkazového řádkuUvnitřtesting_argv.rb
přiřaďteARGV
poli s názveminput_array
, které obsahARGV
sváže s proměnnou.
Protože ARGV
vytváří pole, můžete na input_array
volat libovolnou metodu, kterou můžete volat na normálním poli. Například puts input_array.length
vrátí počet argumentů, které uživatel předal.
Výsledky pole ARGV
můžete také vypsat pomocí puts input_array.to_s
. Celý soubor testing_argv.rb
může vypadat takto:
Pro otestování souboru spusťte program na příkazovém řádku s více argumenty za názvem souboru, například takto: ruby testing_argv.rb these are elements in the argv array
Příkazový řádek by vám měl sdělit, že v poli je 7 položek, a vypsat je do konzoly takto:
Použití Splat k oddělení prvního argumentu od ostatních##
Pro svůj program můžete chtít použít první argument příkazového řádku jako příkaz a ostatní argumenty pak použít jako textový řetězec, se kterým můžete něco dělat. Zde je nový výraz v jazyce Ruby, který vám to pomůže jednoduše provést: first_arg, *the_rest = ARGV
Tady přiřazujete dvě proměnné najednou! Odděluje je čárka a *
se nazývá splat. Podobným způsobem jste splat použili v lekci Codecademy o metodách, blocích a řazení v jazyce Ruby. Kvůli *
Ruby ví, že má přiřadit ARGV
k first_arg
a zbytek argumentů k the_rest. Dokážeme to:
V programu napište:
: puts first_arg
puts the_rest
Poté spusťte ruby testing_argv.rb first and all the rest!
uvnitř příkazového řádku.
##Jak můžete tuto techniku použít?##Příkazový řádek může být mocným rozhraním pro program, který jste napsali. Tyto metody vám umožní zachytit vstupy od uživatele a pak je dobře využít.
Pokud jste například vytvořili program pro bankomat v jazyce Ruby, můžete pomocí argumentů příkazového řádku volat metody a upravovat bankovní účet. Mohli byste napsat pole ARGV, které by přijalo první argument příkazového řádku pro provedení metody, například „vybrat“, a pak by pomocí argumentů za ním, třeba „20 dolarů“, určilo, kolik peněz se má vybrat.
Existuje nekonečné množství způsobů, jak využít ARGV a splats k získání dat z příkazového řádku a přimět je, aby pro vás něco udělaly. Pokud chcete přijít na kloub tomu, jak ARGV funguje, podívejte se na jeho Ruby-doc zde.