在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
中访问,实现了封装性。