我正在阅读以下tutorial。
它讨论了将文件包含在Ruby
文件中,如require
:
require(string)
=>true
或false
Ruby尝试加载名为string的库,返回
true
if 成功的。如果文件名没有解析为绝对路径,则为 将在$:
中列出的目录中搜索。如果文件有 扩展名" .rb",它作为源文件加载;如果扩展名 是" .so"," .o",或" .dll",或者默认的共享库 扩展在当前平台上,Ruby将共享库加载为 Ruby扩展。否则,Ruby会尝试添加" .rb"," .so"等等 这个名字。已加载的要素的名称将添加到数组中$:
。
我只想知道Ruby中的$:
是什么以及$:
的含义。
答案 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搜索$:
中列出的目录希望这有帮助。