在Ruby编程语言中,$的名称是什么:

我想更多地了解$:但我不知道怎么称呼。

 :015 > $: => ["/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.1.0", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/site_ruby", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby/1.9.1", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin11.1.0", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/vendor_ruby", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/1.9.1", "/Users/Nerian/.rvm/rubies/ruby-1.9.3-rc1/lib/ruby/1.9.1/x86_64-darwin11.1.0"] 
  • 这是什么名字?
  • 它是如何以及何时使用的?
  • 是否应该使用它,这是一种好的做法还是一种不好的做法?
  • 是否所有Ruby实现都支持它?
  • 关于它的任何文档?

  • $: global的规范(英文)名称是$LOAD_PATH
  • 顾名思义,它是一个库搜索路径数组,即一个字符串数组,表示解释器将搜索库的所有文件夹(当遇到require "mylibrary"指令时)
  • 它可以在处理全局变量时使用同样的谨慎使用。 实际上,它通常在编写包含在gem或库中的测试或演示脚本时使用,以便测试修改加载路径以便在安装之前找到被测试的库(例如$: << "../lib"假设该脚本是lib的兄弟姐妹)
  • 它被所有规范的Ruby版本/实现使用。 注意虽然是当前目录. 是1.8.x的$:的一部分,并且出于安全原因在1.9.x上被删除。
  • 文档可用于每个Ruby入门(picaxe book,ruby docs site)。

Ruby有一些PRE-DEFINED VARIABLES

 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. 

http://www.zenspider.com/Languages/Ruby/QuickRef.html

它相当于$LOAD_PATH 。 所以我想你可以称之为“加载路径”。 谷歌ruby load_path ,你应该找到很多有用的信息。

Personnaly我更喜欢阅读$LOAD_PATH但是$:是语言的一部分,所以我想可以使用它。