Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
和之间的区别';和RUBY中的File.dirname(_文件__)_Ruby - Fatal编程技术网

和之间的区别';和RUBY中的File.dirname(_文件__)

和之间的区别';和RUBY中的File.dirname(_文件__),ruby,Ruby,我正在学习Lynda.com的Ruby课程,并开发一个小应用程序。 为了使文件便于携带,教师使用以下表格 APP\u ROOT=File.dirname(\uu File\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 我理解常量文件的用途,因为它总是解析当前文件,无论其名称如何 当我键入p APP_ROOT时,它将解析为一个#=>'。据我所知,它代表当前目录 我不明白的是,如果File.dirname(\uu\u Fi

我正在学习Lynda.com的Ruby课程,并开发一个小应用程序。 为了使文件便于携带,教师使用以下表格

APP\u ROOT=File.dirname(\uu File\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

我理解常量文件的用途,因为它总是解析当前文件,无论其名称如何

当我键入
p APP_ROOT
时,它将解析为一个<代码>#=>'。
据我所知,它代表当前目录

我不明白的是,如果
File.dirname(\uu\u File\uu)
总是==
,为什么不直接使用“.”

例如,输出:

$LOAD\u PATH.unshift(File.join(APP\u ROOT,'lib'))

p$:

等于

$LOAD\u PATH.unshift(File.join('.','lib'))

p$:

当我
p$:
时,每一行的结果都是一样的。
File.dirname(\uuu File\uuuuu)
over.'的值是多少

还有,我到处找,但我不确定。 如果我在目录
/home/one/apps

如果我输入
”。
这等于apps目录,还是说包括最终目录在内的整个绝对路径?所以
实际上是
/home/one/apps
而不仅仅是
/apps

提前感谢。

文件。目录名(\uuuuu File\uuuuu)
并不总是与当前目录相同。如果您从与文件相同的目录启动Ruby程序,它将是相同的,但是如果您从不同的目录启动,它将是不同的

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

puts File.dirname(__FILE__)
然后从父目录运行,您会得到以下结果:

$ ruby subdir/foo.rb
subdir
$ cd subdir
$ ruby foo.rb
.
但是如果您
cd
进入目录,然后运行该文件,您会得到以下结果:

$ ruby subdir/foo.rb
subdir
$ cd subdir
$ ruby foo.rb
.
还有