Ruby類(lèi)定義如何設(shè)置屬性訪問(wèn)權(quán)限

小樊
81
2024-11-06 06:58:02

在Ruby中,可以通過(guò)使用attr_accessorattr_reader方法來(lái)設(shè)置屬性的訪問(wèn)權(quán)限。attr_accessor會(huì)生成getter和setter方法,而attr_reader只會(huì)生成getter方法。這樣,你可以控制對(duì)類(lèi)屬性的訪問(wèn)。

以下是一個(gè)示例,展示了如何在Ruby類(lèi)中設(shè)置屬性訪問(wèn)權(quán)限:

class MyClass
  # 使用 attr_accessor 生成 getter 和 setter 方法
  attr_accessor :my_attribute

  # 使用 attr_reader 生成 getter 方法
  attr_reader :another_attribute

  def initialize(my_attribute, another_attribute)
    @my_attribute = my_attribute
    @another_attribute = another_attribute
  end
end

# 創(chuàng)建一個(gè) MyClass 實(shí)例
my_instance = MyClass.new("Hello", "World")

# 通過(guò) getter 方法訪問(wèn)屬性
puts my_instance.my_attribute # 輸出 "Hello"
puts my_instance.another_attribute # 輸出 "World"

# 通過(guò) setter 方法修改屬性
my_instance.my_attribute = "New Value"
puts my_instance.my_attribute # 輸出 "New Value"

在這個(gè)例子中,my_attribute具有訪問(wèn)權(quán)限,可以通過(guò)getter和setter方法進(jìn)行訪問(wèn)和修改。而another_attribute只有g(shù)etter方法,因此只能讀取其值,不能修改它。

0