我为什么要使用File.join()?

nev*_*ame 2 ruby

我想知道为什么我应该使用:

puts "In folder #{File.join ENV[HOME], projects}"
Run Code Online (Sandbox Code Playgroud)

代替:

puts "In folder #{ENV[HOME]/projects}"
Run Code Online (Sandbox Code Playgroud)

我知道File.join将根据操作系统放置适当的分隔符(/ vs \).

该脚本已经与您正在使用的ruby版本,已安装的gem等等紧密相关.我的脚本往往不像ORM,(在这种情况下)独立于OS.

我永远不会在Windows上运行它(其他依赖项将使脚本无法工作).

所以似乎没有一个强有力的理由使用它,对吧?

Dav*_*vid 13

以下任何一种情况:

File.join("first","second")
File.join("first/","second")
File.join("first","/second")
File.join("first/","/second")
Run Code Online (Sandbox Code Playgroud)

将返回

=> "first/second"
Run Code Online (Sandbox Code Playgroud)

这对你来说是个好理由吗?

这只是我能想到的一个例子.

实际上,你的目标不是连接2个字符串,你的目标是创建一个路径.这似乎是一个强有力的理由使用File.join我.


sne*_*rch 8

没有使用Ruby,但我希望Path.join能够处理极端情况,例如以或不使用目录分隔符结束的路径.此外,它比字符串连接更清楚地表达意图,清晰度是恕我直言几乎总是一个好主意.