加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby需要’./blahblah.rb’vs需要File.expand_path(‘../ blahbl

发布时间:2020-12-17 03:16:52 所属栏目:百科 来源:网络整理
导读:有什么区别 require 'blahblahlblah.rb' VS require './blahblah.rb' VS require File.expand_path('../blahblah',__FILE__) 我看到他们都被使用了.想知道什么更好,在什么情况下比另一个更好. 谢谢! 解决方法 require blaba.rb正在搜索你的默认gem路径来加
有什么区别

require 'blahblahlblah.rb'

VS

require './blahblah.rb'

VS

require File.expand_path('../blahblah',__FILE__)

我看到他们都被使用了.想知道什么更好,在什么情况下比另一个更好.

谢谢!

解决方法

> require blaba.rb正在搜索你的默认gem路径来加载文件,这取决于你正在使用的ruby版本.例如,RVM将搜索$HOME / .rvm / rubies / …而系统范围的ruby将搜索分发的默认路径.请注意,这是宝石所在的位置,但您可以在同一路径中手动添加一个名为mylibrary.rb的库,并在任何程序中使用它.但是,这是一件非常糟糕的事情,创建宝石并将其安装到您的系统中是一个更简洁的过程.
> require ./blabla.rb加载位于工作目录中的文件.您可以添加完整路径,例如require /home/username/library/myproject/models/sample.rb.它的工作方式大致相同.在类UNIX的世界中,./符号表示当前目录.这个解决方案通常用在irb中,用于加载一个轨道模型,即users.rb到irb或pry并使用它.为了给你一个shell环境中的例子(如果你熟悉UNIX shell,你会发现它):

GreyJewel ~ ? ls myports.txt                                                                                                                                                         
myports.txt

GreyJewel ~ ? ls ./myports.txt                                                                                                                                                       
./myports.txt

>第三个解决方案需要在程序中使用File.expand_path(‘../ sample.rb’,__ FILE__),因为它显式创建了一个完整路径,用作锚点,该行所持文件所在的目录,这是一个很大的与require ./sample.rb相比,更安全的方法.请注意,加载ruby文件时,可以省略文件扩展名.rb.

希望这能澄清一下情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读