Các bạn, tôi đang học ruby và gần đây đã chuyển từ JAVA. Trong JAVA tôi có thể tạo một biến thành viên của một lớp tĩnh và biến thành viên đó sẽ vẫn giữ nguyên trên các cá thể của lớp. Làm thế nào để tôi đạt được điều tương tự trong ruby. Tôi đã làm điều gì đó như thế này trong lớp học ruby của tôi:Phương pháp lớp trong Ruby (tương đương với tĩnh trong JAVA)
class Baseclass
@@wordshash
end
Điều này dường như nhằm mục đích cho đến nay trong khi tôi đang thử nghiệm điều này, đó là @@ wordhash vẫn giữ nguyên trên các trường hợp của Baseclass. Tôi hiểu thế có đúng không.
Ngoài ra, tôi muốn có một phương thức thành viên trong lớp tương đương với một phương thức tĩnh trong JAVA (tôi không yêu cầu phải có một cá thể của lớp để truy cập vào lớp này). Tôi có thể làm cái này như thế nào? Ví dụ tôi muốn có một phương pháp trong BaseClass như getwordshash() trả về @@ wordshash và người sử dụng của phương pháp mà không cần phải thực hiện một thể hiện của BaseClass() Vì vậy, một cái gì đó như thế này:.
class Baseclass
@@wordshash
#static or class method
def getwordhash()
return @@wordshash
end
end
và sau đó tôi có thể sử dụng nó như
#without making an instance
@hash = Baseclass.getwordhash()
Tôi xin lỗi nếu đây là một câu hỏi rất ngây thơ, tôi thực sự mới đến với Ruby nhưng rất vui mừng khi học.
Thực ra, quy ước thường không có loại. Nó sẽ là '@@ words' thay vì' @@ words_hash'. –