Ruby 元類(Metaclasses)是 Ruby 中一個高級且強大的概念,它們允許你控制類的創建和行為。在 Ruby 中,一切皆對象,包括類。類本身也是對象,而類對象也是由元類創建的。Ruby 的默認元類是 Class
,但你也可以創建自定義的元類。
以下是 Ruby 元類的一些核心概念:
Class
類創建的,Class
類本身也是一個類,因此它也有一個元類,即 Class
的元類是 Class
本身。Class.new
方法來創建一個新的空類,或者通過繼承自某個現有類來創建一個新類。Class
,那么你的自定義元類將用于創建所有由該元類創建的類。Class#mro
方法來查看一個類的 MRO。Class#new
方法來自定義類的創建過程,或者重寫 Class#method_missing
方法來攔截并處理類方法中的未定義方法調用。Class#new
方法,使其只創建一個實例,并將該實例存儲在一個靜態變量中。這些是 Ruby 元類的一些核心概念。了解這些概念將幫助你更深入地理解 Ruby 的面向對象編程和元編程能力。