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. 希望这能澄清一下情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |