2012-02-11 28 views
33

Tôi thấy điều này rất nhiều trong nhiều kịch bản ruby ​​nhưng không chắc chắn những gì nó có nghĩa là:

$:.unshift File.dirname(__FILE__) 
+0

Bản sao có thể có của [$ :. unshift File.dirname (\ _ \ _ FILE \ _ \ _) 'đang làm gì?] (Http://stackoverflow.com/questions/5155995/what-is-unshift- tập tin-dirname-file-doing) –

Trả lời

41

$: chỉ là một phím tắt cho $LOAD_PATH. __FILE__ là đường dẫn tương đối của tập lệnh. Thao tác này sẽ thêm thư mục tập lệnh hiện tại vào đường dẫn tải.

+0

Và thêm thư mục này đầu tiên, vì vậy nó có ưu tiên hơn phần còn lại. Đúng? – MegaTux

+0

@MegaTux Đúng vậy. – bfontaine

11

ruby ​​đi kèm với một tập hợp các biến được xác định trước:

$: Mảng chứa danh sách các địa điểm để tìm kiếm các kịch bản lệnh Ruby và mô-đun nhị phân bằng cách tải hoặc yêu cầu. Nó ban đầu bao gồm các đối số cho bất kỳ thiết bị chuyển mạch dòng lệnh -I, theo sau là thư viện Ruby mặc định, probabl "/ usr/local/lib/ruby", tiếp theo là ".", Để đại diện cho thư mục hiện tại. (Mnemonic: thư đại tràng là dải phân cách cho biến môi trường PATH.)

Xem ở đây để biết thêm: http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#colon

một liên kết khác: http://www.ruby-forum.com/topic/142378#631564

Các vấn đề liên quan