Jeśli zmienna instancji należy do klasy, czy mogę uzyskać dostęp do zmiennej instancji (np. @hello
) Bezpośrednio za pomocą instancji klasy?
class Hello
def method1
@hello = "pavan"
end
end
h = Hello.new
puts h.method1
ruby
instance-variables
Pawan
źródło
źródło
h = Hello.new
ih.method1
ih.hello
?attr_reader :hello
alias my_hello hello
prawdaalias :my_hello :hello
?Możesz to również zrobić dzwoniąc
attr_reader
lub wattr_accessor
ten sposób:class Hello attr_reader :hello def initialize @hello = "pavan" end end
lub
class Hello attr_accessor :hello def initialize @hello = "pavan" end end
Wywołanie
attr_reader
stworzygetter
dla danej zmiennej:h = Hello.new p h.hello #"pavan"
Wywołanie
attr_accessor
utworzygetter
AND asetter
dla danej zmiennej:h = Hello.new p h.hello #"pavan" h.hello = "John" p h.hello #"John"
Jak możesz zrozumieć, użyj
attr_reader
iattr_accessor
odpowiednio. Używaj tylkoattr_accessor
wtedy, gdy potrzebujeszgetter
AND asetter
i używaj,attr_reader
gdy potrzebujesz tylkogetter
źródło