在Ruby中,封装性可以通过使用模块(module)和类(class)来实现。如果你想封装类常量,可以使用module_eval
方法或者class_eval
方法来定义常量。这里有一个例子:
# 使用模块封装常量 module MyConstants CONSTANT1 = "Hello" CONSTANT2 = "World" end # 使用类封装常量 class MyClass CONSTANT1 = "Hello" CONSTANT2 = "World" end # 访问封装的常量 puts MyConstants::CONSTANT1 # 输出 "Hello" puts MyClass::CONSTANT2 # 输出 "World"
在这个例子中,我们使用了模块MyConstants
和类MyClass
来封装常量。要访问这些常量,我们需要使用模块或类的名称作为前缀。
如果你想在类中封装常量,可以使用class_eval
方法:
class MyClass class_eval do CONSTANT1 = "Hello" CONSTANT2 = "World" end end puts MyClass::CONSTANT1 # 输出 "Hello" puts MyClass::CONSTANT2 # 输出 "World"
这里,我们使用class_eval
方法在MyClass
的上下文中定义常量。这样,这些常量就只能在MyClass
中访问,实现了封装性。