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

‘.’之间的区别和RUBY中的File.dirname(__ FILE__)

发布时间:2020-12-16 21:08:36 所属栏目:百科 来源:网络整理
导读:我正在通过Lynda.com Ruby课程并构建一个小应用程序. 为了使文件可移植,教师使用下面的表格. APP_ROOT = File.dirname(__ FILE__) 我理解常量FILE的目的,因为它总是解析当前文件,无论它的名称是什么. 当我键入p APP_ROOT时,它解析为a. #= ”我理解的是当前目
我正在通过Lynda.com Ruby课程并构建一个小应用程序.
为了使文件可移植,教师使用下面的表格.

APP_ROOT = File.dirname(__ FILE__)

我理解常量FILE的目的,因为它总是解析当前文件,无论它的名称是什么.

当我键入p APP_ROOT时,它解析为a. #=> ”我理解的是当前目录.

我不知道的是,如果File.dirname(__ FILE__)总是==’.’,为什么不使用’.’ ?

例如输出:

$LOAD_PATH.unshift(File.join(APP_ROOT,’lib’))

p $:

等于

$LOAD_PATH.unshift(File.join(‘.’,’lib’))

p $:

当我p $:我得到两条线的完全相同的结果. File.dirname(__ FILE__)超过’.’的值是多少? ?

此外,我搜索了所有,但我不确定.
如果我在目录/ home / one / apps中

如果我输入’.’
是等于apps目录还是这意味着包括最终目录在内的整个绝对路径?所以.真的是/ home / ones / apps而不仅仅是/ apps

提前致谢.

解决方法

File.dirname(__ FILE__)并不总是与当前目录相同.如果从与文件相同的目录启动Ruby程序,它将是相同的,但如果从不同的目录开始则会有所不同.

例如,如果你有一个包含foo.rb的子目录subdir,其内容如下:

puts File.dirname(__FILE__)

然后从父目录运行你得到这个:

$ruby subdir/foo.rb
subdir

但如果你进入目录然后运行该文件你得到这个:

$cd subdir
$ruby foo.rb
.

(编辑:李大同)

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

    推荐文章
      热点阅读