ruby里的实例变量用一个@符号做前缀。但是不能直接访问,例如:
class Person
def initialize(name, age)
@name = name
@age= age
end
endp1=Person.new("Tom",23)
puts p1.name #这一行会报undefined method `name'的错误
下面的代码是ruby里一个标准的属性访问器,它类似于getter和setter。有一点特别,就是属性名+等于号 来定义一个setter。
class Person
def initialize(name, age)
@name = name
@age= age
end
def name
@name
end
def age
@age
end
def age=(value)
@age= value
end
endp1=Person.new("Tom",23)
puts p1.name #Tom
p1.age = 25
puts p1.age #25
ruby还提供一种便捷的写法:
class Person
def initialize(name, age)
@name = name
@age= age
end
attr_reader :name, :age
attr_writer :age
end
本文介绍Ruby中如何使用实例变量,并通过定义getter和setter方法来访问这些变量。文章提供了实例变量的使用示例,并展示了如何利用attr_reader和attr_writer简化代码。
1582

被折叠的 条评论
为什么被折叠?



