Trong khi đó là sự thật mà bạn không thể truy cập các biến địa phương được xác định trong các tập tin cần thiết, bạn có thể truy cập hằng, và bạn có thể truy cập bất cứ điều gì lưu trữ trong một đối tượng mà bạn có thể sử dụng trong cả hai tình huống. Vì vậy, có một vài cách để chia sẻ thông tin, tùy thuộc vào mục tiêu của bạn.
Giải pháp phổ biến nhất có thể là xác định mô-đun và đặt giá trị được chia sẻ của bạn trong đó. Vì các mô-đun là hằng số, bạn sẽ có thể truy cập nó trong ngữ cảnh yêu cầu.
# in welcome.rb
module Messages
WELCOME = "hi there"
end
# in irb
puts Messages::WELCOME # prints out "hi there"
Bạn cũng có thể đặt giá trị bên trong một lớp, với cùng tác dụng. Ngoài ra, bạn chỉ có thể xác định nó như là một hằng số trong tập tin. Vì ngữ cảnh mặc định là một đối tượng của lớp Object, được gọi là chính, bạn cũng có thể định nghĩa một phương thức, biến cá thể hoặc biến lớp trên chính. Tất cả những cách tiếp cận này cuối cùng là những cách khác nhau để tạo ra "biến toàn cầu", ít nhiều, và có thể không tối ưu cho hầu hết các mục đích. Mặt khác, đối với các dự án nhỏ với phạm vi được xác định rất tốt, chúng có thể ổn.
# in welcome.rb
WELCOME = "hi constant"
@welcome = "hi instance var"
@@welcome = "hi class var"
def welcome
"hi method"
end
# in irb
# These all print out what you would expect.
puts WELCOME
puts @welcome
puts @@welcome
puts welcome
Nguồn
2010-04-23 15:54:12
Tốt, như một nhận xét: Mã 'WELCOME' trong mã John Hyland có thể được truy cập vì nó bắt đầu bằng * ký tự *, điều này làm cho nó không đổi. Ruby quan tâm. –