2012-07-23 36 views
9

Tôi đang sử dụng ruby ​​1.8.7. Tôi có thể thề rằng tôi đã viết các chức năng của mình ở cuối kịch bản trước và nó hoạt động tốt.Phương pháp Ruby ở cuối tập lệnh?

Tôi có phải đặt chúng ở trên cùng không? Nó có vẻ là cách duy nhất họ làm việc bây giờ. Không phải là một thỏa thuận lớn. Tôi chỉ muốn có chúng ở phía dưới vì vậy tôi nghĩ tôi sẽ hỏi.

+1

Bạn có một số mã cụ thể bạn đang gặp vấn đề với? –

Trả lời

15

Bạn có thể khởi tạo mã trong một hoặc nhiều khối BEGIN (được kế thừa từ Perl, được kế thừa từ awk).

can_i_do_this? #=>yes 

BEGIN { 
    def can_i_do_this? 
    puts "yes" 
    end 
} 

Và cho đầy đủ, có cũng được END-khối:

END { 
    can_i_do_this? #=> yes 
} 

def can_i_do_this? 
    puts "yes" 
end 
5
a 
def a 
    puts "Hello world!" 
end 

Chạy kịch bản này trong Ruby sẽ cung cấp cho bạn:

script.rb:1:in `<main>': undefined local variable or method `a' for main:Object (NameError) 

Vì vậy, không, bạn có thể không có họ ở phía dưới. Vì Ruby là một ngôn ngữ thông dịch, bất kỳ mã nào được phân tích cú pháp và xử lý tại thời gian chạy CHỈ. Do đó, bạn chỉ có thể chạy mã (các phương thức gọi, sử dụng các biến ...) đã được xác định trước khi tham chiếu thực tế.

+0

Tuyệt. Sẽ làm. Cảm ơn vì đã giải thích. –

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