【问题标题】:what is "$:" in ruby?红宝石中的“$:”是什么?
【发布时间】:2011-10-21 07:43:39
【问题描述】:

通常出现在 .gemspec 文件中。例如。 i18n.gemspec.

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

【问题讨论】:

标签: ruby rubygems load-path


【解决方案1】:
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.

上面的快捷方式是不幸的 Perl 错误!其中一些有可用的“英文名称”,不言自明,如果可用,应使用。

另请参阅:https://docs.ruby-lang.org/en/2.4.0/globals_rdoc.html

【讨论】:

    【解决方案2】:

    $: 是加载路径,$LOAD_PATH 是它的别名。当您在 ruby​​ 应用程序中 load/require 库/文件时,ruby 会在 $: 中列出的目录中搜索它们。使用$: &lt;&lt; File.expand_path('../lib', __FILE__),您可以将特定目录添加到加载路径。

    【讨论】:

      【解决方案3】:

      $: 等同于$LOAD_PATH,即您可以从require 文件的目录列表,而无需提供更具体的路径。您会发现 Ruby QuickRef 对于您可能遇到的其他预定义变量很有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-17
        • 2019-06-22
        • 1970-01-01
        • 2017-08-11
        • 2011-04-26
        • 1970-01-01
        • 2010-10-06
        • 2015-07-28
        相关资源
        最近更新 更多