tuyên bố từ chối trách nhiệm: Mã được lấy từ ruby koansRuby: phạm vi rõ ràng trên định nghĩa lớp
Đây là từ một cuộc thảo luận về hằng số phạm vi trong các lớp. Đây là defintion của một cặp vợ chồng vài lớp:
class Animal
LEGS = 4
def legs_in_animal
LEGS
end
end
class MyAnimals
LEGS = 2
class Bird < Animal
def legs_in_bird
LEGS
end
end
end
Tại thời điểm này làm MyAnimals::Bird.new.legs_in_bird
kết quả trong 2 và tôi hiểu tại sao - tìm kiếm không gian từ vựng cho hằng số trước khi hệ thống cấp bậc thừa kế.
Sau đó, lớp này được định nghĩa:
class MyAnimals::Oyster < Animal
def legs_in_oyster
LEGS
end
end
Các hướng dẫn nói rằng bây giờ gọi MyAnimals::Oyster.new.legs_in_oyster
kết quả trong 4 và tôi không thể hình dung nó ra. Nó xuất hiện với tôi rằng Oyster là một lớp lồng nhau trong MyAnimals và như vậy tôi mong đợi nó để hành xử theo cùng một cách như lớp chim đã làm ở trên. Tôi đang thiếu một số thông tin quan trọng về những gì tuyên bố lớp Oyster với phương tiện phạm vi rõ ràng.
bất cứ ai có thể giải thích điều này cho tôi không? Tôi đã tìm thấy hàng trăm hướng dẫn về lớp học ruby qua Google nhưng không có ai trong số họ giải quyết tình huống này.
cảm ơn bạn trước ...
Có ai viết mã phụ thuộc vào hằng số nào sẽ đạt được trước không? –