Ruby: Command Line Arguments with ARGV

Tło

W ten sam sposób, w jaki przekazujemy argumenty do metod w Rubim, możemy również przekazywać argumenty do całych programów. To jest dokładnie to, co robią argumenty linii poleceń. Za każdym razem, gdy uruchamiamy nasz program w Rubim, możemy podawać różne argumenty wiersza poleceń i uzyskiwać różne wyniki.

Dlaczego warto się tego nauczyć?##

W lekcji Rubiego zatytułowanej Umieszczanie formy w Formatterze, użyłeś gets.chomp aby wprowadzić dane użytkownika do swojego programu w Rubim. Użycie argumentów wiersza poleceń dodaje nowe narzędzie do twojego pasa narzędzi Rubiego, które możesz użyć do wprowadzenia danych użytkownika do twojego programu, jeśli chcesz.

Używanie argumentów linii poleceń##

Ruby przechwytuje argumenty linii poleceń za pomocą specjalnej tablicy o nazwie ARGV. Kiedy napiszesz wewnątrz swojego programu w Rubim, ARGV przyjmie polecenie wiersza poleceń, które wygląda jak to:ruby testing_argv.rb these are elements in the argv array

i utworzy tablicę, która wygląda jak to:

Teraz spróbuj!

Próbując ARGV##

  1. W Sublime Text, utwórz plik o nazwie testing_argv.rb przechodząc do Plik > Nowy plik …
  2. Po utworzeniu pliku testowego, upewnij się, że zapisałeś go w łatwym do znalezienia miejscu, i zacznijmy pisać nasz kod!
  3. Ustaw ARGV, aby przechwytywać argumenty wiersza poleceńWewnątrz testing_argv.rb przypisz ARGV do tablicy o nazwie input_array, która zwiąże zawartość ARGV ze zmienną.

ARGV-Example-1

Ponieważ ARGV tworzy tablicę, możesz wywołać na input_array dowolną metodę, którą możesz wywołać na normalnej tablicy. Na przykład, puts input_array.length zwróci liczbę argumentów, jaką przekazał użytkownik.

Możesz również wydrukować wyniki tablicy ARGV za pomocą puts input_array.to_s. Pełny plik testing_argv.rb może wyglądać mniej więcej tak:

ARGV-Example-2

Aby przetestować swój plik, uruchom program w wierszu poleceń z wieloma argumentami następującymi po nazwie pliku, jak poniżej: ruby testing_argv.rb these are elements in the argv array

Twój wiersz poleceń powinien Ci powiedzieć, że w tablicy jest 7 elementów i wypisać je na konsolę, jak w ten sposób:

ARGV Wyjście konsoli Przykład 1

Użycie Splat do oddzielenia pierwszego argumentu od reszty##

W swoim programie możesz chcieć użyć pierwszego argumentu wiersza poleceń jako polecenia, a następnie użyć reszty argumentów jako łańcucha tekstu, z którym możesz robić różne rzeczy. Oto nowe wyrażenie Rubiego, które pomoże Ci to osiągnąć w prosty sposób: first_arg, *the_rest = ARGV

Tutaj przypisujesz dwie zmienne w tym samym czasie! Przecinek oddziela je, a * jest nazywane splatem. Używałeś splat w podobny sposób w lekcji Codecademy o Ruby Methods, Blocks and Sorting. Ze względu na *, Ruby wie, aby przypisać ARGV do first_arg, a resztę argumentów do the_rest. Udowodnijmy to:

W swoim programie napisz: puts first_argputs the_rest

Następnie uruchom ruby testing_argv.rb first and all the rest! wewnątrz swojego wiersza poleceń.

##Jak możesz wykorzystać tę Technikę?##Linia poleceń może być potężnym interfejsem dla napisanego przez Ciebie programu. Te metody pozwolą Ci przechwycić dane wejściowe użytkownika, a następnie dobrze je wykorzystać.

Na przykład, jeśli zbudowałeś program bankomatowy w Rubim, możesz użyć argumentów wiersza poleceń do wywołania metod i modyfikacji konta bankowego. Mógłbyś napisać tablicę ARGV, która pobiera pierwszy argument wiersza poleceń, aby wykonać metodę, taką jak „withdraw”, a następnie użyć argumentów po niej, być może „$20”, aby określić, ile pieniędzy wypłacić.

Istnieją nieskończone sposoby użycia ARGV i splats, aby uzyskać dane z wiersza poleceń i sprawić, że zrobią coś dla Ciebie. Jeśli chcesz się dowiedzieć jak działa ARGV, sprawdź jego dokumentację w Ruby tutaj.