2010-11-06 39 views

Trả lời

53

Có khác, tinh tế khác biệt:

File.join('foo','bar') 
#=> "foo/bar" 
['foo','bar'].join('/') 
#=> "foo/bar" 

Nhưng, nếu bạn vượt qua một cuộc tranh cãi đã kết thúc với / (được khá thường xuyên khi làm việc với đường dẫn), bạn sẽ không có hai dấu gạch chéo trong kết quả :

File.join('foo/','bar') 
#=> "foo/bar" 
['foo/','bar'].join('/') 
#=> "foo//bar" 
+0

Đã không nghĩ về điều đó, cảm ơn –

+0

Có một lỗi trong SO hoặc tôi đã thực sự được upvoted 5 lần trong 3 phút?! –

+2

Đôi khi những gì bạn nghĩ là những câu trả lời nhỏ nhặt nhất của bạn nhận được nhiều upvotes nhất. [This] (http://stackoverflow.com/questions/1793693/why-would-yaml-be-unavailable-in-production/1793719#1793719) là một trong những câu trả lời được tán thành nhiều nhất của tôi. –

14

Nó sẽ sử dụng File::SEPARATOR, theo lý thuyết không cần phải là /.

+5

Thực ra, nó cũng sử dụng '/' trên Windows. Bởi vì 'File :: SEPARATOR' là"/"trên Windows - chỉ có' ​​File :: ALT_SEPARATOR' là "\\". – sepp2k

+0

Cảm ơn, @ sepp2k. Có lẽ bạn nên thêm câu trả lời nếu bạn biết tại sao họ chọn thiết kế đó. –

+2

Có nền tảng nào Ruby chạy trên/không phải là dấu phân tách tệp hợp lệ không? –