Tôi có một lớp với hằng số được xác định cho nó. Sau đó tôi có một phương thức lớp được định nghĩa để truy cập hằng số lớp đó. Điều này hoạt động tốt. Một ví dụ:(Trong Ruby) cho phép các phương thức lớp hỗn hợp truy cập vào các hằng số lớp học
#! /usr/bin/env ruby
class NonInstantiableClass
Const = "hello, world!"
class << self
def shout_my_constant
puts Const.upcase
end
end
end
NonInstantiableClass.shout_my_constant
Vấn đề của tôi nảy sinh trong cố gắng để di chuyển phương pháp lớp này ra một mô-đun bên ngoài, như vậy:
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
của Ruby giải thích phương pháp như yêu cầu một hằng số từ các mô-đun, chứ không phải là lớp học:
line 5:in `shout_my_constant': uninitialized constant CommonMethods::Const (NameError)
Vì vậy, bạn cần phải làm gì để phương pháp tiếp cận lớp học? Cảm ơn nhiều.
Vâng, điều đó sẽ xóa mọi thứ. Tôi chưa trải nghiệm cú pháp ::. – jameshfisher
Đừng dừng đọc ngay bây giờ. Đọc dưới đây johannes phản ứng. – Sebastian