2012-12-04 22 views
6

Jestem programistą Java i otrzymałem kod w języku Ruby, aby móc go zrozumieć, a następnie nad nim pracować.

Przeszedłem tutoriale Ruby na tutorialspoint.com, ale nie wiem, co to jest $_[0].

Jest on przypisywany do zmiennej w kodzie i zdecydowanie nie jest argumentem linii poleceń, ponieważ napisałem kod, aby to przetestować i nie udało się. Czy ktoś może powiedzieć, jakie jest jego znaczenie?

+0

Choć Ruby obsługuje wiele zmiennych „magiczne”, korzystanie z nich jest kontrowersyjny i, jak widać, trochę z problemu technicznego, ponieważ są niejasne. Polecam, patrząc na moduł angielski, aby uzyskać bardziej czytelne nazwy zmiennych. –

Odpowiedz

13

To jedna z magicznych zmiennych.

$_ zawiera wartość ostatniego wiersza odczytanego ze standardowego wejścia. $_[0] jest zatem pierwszym symbolem tego ciągu.

Zobacz English.rb więcej zmiennych magicznych

# The last line read by <tt>Kernel.gets</tt> or 
# <tt>Kernel.readline</tt>. Many string-related functions in the 
# +Kernel+ module operate on <tt>$_</tt> by default. The variable is 
# local to the current scope. Thread local. 
alias $LAST_READ_LINE   $_ 
+3

Mimo że jest to magiczna zmienna, nie jest tak naprawdę globalna. '$' Wprowadza w błąd. –

+0

Dzięki, poprawione. –

+1

Yepp, większość "magicznych globali" to tak naprawdę "magiczni miejscowi nitki". –