ruby學習筆記 1 訪問物件屬性

2021-08-22 06:52:23 字數 984 閱讀 5030

在ruby中,運算子操作實際上也是方法呼叫,於是,我們就可以避免繁瑣的get,set方法了:

class book  

def initialize(name)  

@name =name  

enddef name  

@name

enddef name=(new_name)  

@name=new_name  

endend

但是如果屬性比較多的話,又會出現一大堆方法,這自然是ruby所不取的。於是又有了如下的簡化:

class book  

attr_reader :name

attr_writer :name

def initialize(name)  

@name=name  

endend

或者進一步簡化成:

class book  

attr_accessor :name

def initialize(name)  

@name=name  

endend

這樣我們就可以來進行方法呼叫,如下所示:

book = book.new("ruby")  

puts book.name  

book.name="python"

puts book.name  

但是如果要在物件內部對其屬性進行訪問的話,就不能用attr_writer了,它會預設的把表示式左側的變數當作區域性變數來處理,而非物件屬性。解決的方法有兩種,一種是如initialize方法那樣,使用@name來訪問,還有一種是使用self.name來訪問,如下所示:

class book  

attr_accessor :name

def initialize(name)  

@name =name  

enddef refresh  

self.name="new book"

endend

ruby學習筆記 2 訪問控制

class singleton 公開的 預設不宣告許可權的物件都是公開的 initialize除外,它總是私有的 public def publicmethod puts this is a public method end 私有的 private def privatemethod puts t...

Ruby 學習筆記 1 有疑問

puts 演示while not a 1while not a 10 print a,a 1 endputs for i in 1.10 print i,endputs puts 演示break c a for i in 1.4 if i 2 and c a c b print n break en...

ruby學習筆記 1 初識語法

雖然ruby ruby on rails從2007年就一直獲獎無數,但身為乙個中國人,一直對小日本創造的東西不怎麼感興趣,想想其實也沒必要,技術本身是無國界的,日本其實也有值得學習的地方 扯遠了,呵 單從技術而言,ruby本身確實很爽,令程式設計師的工作變得輕鬆有趣!下面的 演示了如何找出100以內...