我一直在研究像Sinatra和Rails这样的ruby和框架,我看到了这种代码:
File.expand_path(..., __FILE__) # this returns something like /Users/.../app/something.rb
而不仅仅是从:
开始File.expand_path(..., ".") # this returns something like /Users/.../app
由于两者都返回有效路径和已知路径,是否有理由从__FILE__而不是“。”开始导航?
提前致谢。
答案 0 :(得分:4)
__dir__
或(__FILE__
)不一定与"."
相同。前者是文件的位置。后者是调用主命令的位置(或者通过Dir.chdir
等命令将其更改为的位置。)
答案 1 :(得分:0)
__FILE__
表示当前文件,而'.'
表示代码执行的当前目录。因此,与..
相比,您必须在当前文件之前达到某个级别('.'
)才能到达特定文件。
从have read开始, 是一种丑陋的使用方式。开发人员根据直觉使用它,它完全取决于项目/社区采用的约定。