什么意思$:在Ruby中

时间:2014-11-07 10:58:17

标签: ruby

我正在阅读以下tutorial

它讨论了将文件包含在Ruby文件中,如require

  

require(string) => truefalse

     

Ruby尝试加载名为string的库,返回true if   成功的。如果文件名没有解析为绝对路径,则为   将在$:中列出的目录中搜索。如果文件有   扩展名" .rb",它作为源文件加载;如果扩展名   是" .so"," .o",或" .dll",或者默认的共享库   扩展在当前平台上,Ruby将共享库加载为   Ruby扩展。否则,Ruby会尝试添加" .rb"," .so"等等   这个名字。已加载的要素的名称将添加到数组中   $:

我只想知道Ruby中的$:是什么以及$:的含义。

3 个答案:

答案 0 :(得分:9)

变量$:是执行环境变量之一,它是一个搜索已加载文件的地方数组。

初始值是通过-I命令行选项传递的参数值,后跟安装定义的标准库位置。

请参阅Pre-defined variables$LOAD_PATH是别名。

答案 1 :(得分:3)

它的载荷路径

只需在irb终端中打开,然后输入$: 这就是你会得到的。当然,这取决于你使用的红宝石。

2.1.1 :009 > $:
=> ["/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/site_ruby/2.1.0", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/x86_64-darwin12.0", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/site_ruby", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/vendor_ruby/2.1.0", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/vendor_ruby/2.1.0/x86_64-darwin12.0", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/vendor_ruby", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0", "/Users/mac/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin12.0"] 
2.1.1 :010 > 

答案 2 :(得分:2)

在ruby中 $ 是指预定义的变量。

在这种情况下, $:是$ LOAD_PATH的简写。这是在给出相对路径时可以要求文件的目录列表。换句话说,Ruby搜索$:

中列出的目录

希望这有帮助。