2012-02-11 7 views
33

Vedo questo molto in molti script Ruby, ma non è sicuro che cosa significa:

$:.unshift File.dirname(__FILE__) 
+0

Possibile duplicato di [Cosa è "$ :. unshift File.dirname (\ _ \ _ FILE \ _ \ _) 'facendo?] (Http://stackoverflow.com/questions/5155995/what-is-unshift- file-dirname-file-doing) –

risposta

41

$: è solo una scorciatoia per $LOAD_PATH. __FILE__ è il percorso relativo allo script. Questo aggiunge la directory di script corrente al percorso di caricamento.

+0

E aggiungi prima questa directory, quindi ha la priorità sul resto. Destra? – MegaTux

+0

@MegaTux Esatto. – bfontaine

11

rubino è dotato di una serie di variabili predefinite:

$: La matrice contiene l'elenco delle posizioni da cercare per gli script Ruby e i moduli binari per carico o richiesta. Inizialmente consiste degli argomenti per qualsiasi opzione della riga di comando -I, seguita dalla libreria Ruby predefinita, probabilmente "/ usr/local/lib/ruby", seguita da ".", Per rappresentare la directory corrente. (Memo: colon è i separatori per la variabile d'ambiente PATH.)

Vedi qui per maggiori: http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#colon

un altro collegamento: http://www.ruby-forum.com/topic/142378#631564