我想知道为什么要使用:
puts "In folder #{File.join ENV[HOME], projects}"
而不是:
puts "In folder #{ENV[HOME]/projects}"
我知道File.join将根据操作系统放置适当的分隔符(/ vs \)。
该脚本已经与您正在使用的ruby版本,已安装的gem等等紧密相关。我的脚本往往不像ORM,(在这种情况下)独立于操作系统。
我永远不会在Windows上运行它(其他依赖项将使脚本无法工作)。
所以似乎没有一个强有力的理由使用它,对吗?
答案 0 :(得分:13)
以下任何一项:
File.join("first","second")
File.join("first/","second")
File.join("first","/second")
File.join("first/","/second")
将返回
=> "first/second"
这对你来说是个好理由吗?
这只是我能想到的一个例子。
实际上,你的目标不是连接2个字符串,你的目标是创建一个路径。这似乎是向我File.join
使用{{1}}的强烈理由。
答案 1 :(得分:8)
没有使用Ruby,但我希望Path.join能够处理极端情况,例如以或不使用目录分隔符结束的路径。此外,它比字符串连接更清楚地表达意图,清晰度是恕我直言几乎总是一个好主意。
答案 2 :(得分:1)
我希望join
能够优雅地处理角落案例,例如ENV[HOME]
由于某些奇怪的原因而为空时。
答案 3 :(得分:1)
除了其他答案之外,您的代码将更加便携,无论unix / windows /等,都将使用正确的分隔符。