20 votes

que signifie "$ :" en ruby ?

Habituellement, on le voit dans le fichier .gemspec. eg. i18n.gemspec .

$: << File.expand_path('../lib', __FILE__)

33voto

Tilo Points 13833
Pre-defined variables
$!         The exception information message set by 'raise'.
$@         Array of backtrace of the last exception thrown.
$&         The string matched by the last successful match.
$`         The string to the left  of the last successful match.
$'         The string to the right of the last successful match.
$+         The highest group matched by the last successful match.
$1         The Nth group of the last successful match. May be > 1.
$~         The information about the last match in the current scope.
$=         The flag for case insensitive, nil by default.
$/         The input record separator, newline by default.
$\         The output record separator for the print and IO#write. Default is nil.
$,         The output field separator for the print and Array#join.
$;         The default separator for String#split.
$.         The current input line number of the last file that was read.
$<         The virtual concatenation file of the files given on command line (or from $stdin if no files were given).
$>         The default output for print, printf. $stdout by default.
$_         The last input line of string by gets or readline.
$0         Contains the name of the script being executed. May be assignable.
$*         Command line arguments given for the script sans args.
$$         The process number of the Ruby running this script.
$?         The status of the last executed child process.
$:         Load path for scripts and binary modules by load or require.
$"         The array contains the module names loaded by require.
$DEBUG     The status of the -d switch.
$FILENAME  Current input file from $<. Same as $<.filename.
$LOAD_PATH The alias to the $:.
$stderr    The current standard error output.
$stdin     The current standard input.
$stdout    The current standard output.
$VERBOSE   The verbose flag, which is set by the -v switch.
$-0        The alias to $/.
$-a        True if option -a is set. Read-only variable.
$-d        The alias to $DEBUG.
$-F        The alias to $;.
$-i        In in-place-edit mode, this variable holds the extension, otherwise nil.
$-I        The alias to $:.
$-l        True if option -l is set. Read-only variable.
$-p        True if option -p is set. Read-only variable.
$-v        The alias to $VERBOSE.
$    -w        True if option -w is set.

les raccourcis ci-dessus sont un anachronisme malheureux de Perl ! Il existe des "noms anglais" pour certains d'entre eux, qui sont explicites, et qui devraient être utilisés s'ils sont disponibles.

voir aussi : https://docs.ruby-lang.org/en/2.4.0/globals_rdoc.html

8voto

tbuehlmann Points 2446

$: est le chemin de la charge et $LOAD_PATH est son alias. Lorsque vous load / require dans votre application ruby, ruby cherche dans les répertoires listés dans la rubrique $: pour eux. Avec $: << File.expand_path('../lib', __FILE__) vous ajoutez un répertoire spécifique au chemin de chargement.

4voto

Jordan Points 26741

$: est équivalent à $LOAD_PATH c'est-à-dire la liste des répertoires que vous pouvez require sans donner un chemin plus spécifique. Vous trouverez le Ruby QuickRef utile pour d'autres variables prédéfinies que vous pouvez rencontrer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X