2011년 6월 2일 목요일

Writable Attributes

객체 밖에서 속성을 설정하고 싶을때. Java의 Setter와 같은 기능을 하는 메서드를 루비에서도 정의할 수 있다.
name 속성 설정은 자바에서는 setName이지만 루비에서는 name= 와 같이 설정한다.

class Song
 def name=(new_name)
@name = new_name
 end
 
 def initialize(name, artist, duration)
@name = name
@artist   = artist
@duration = duration
 end
 
 def to_s  
"Song: #{@name}--#{@artist} (#{@duration})"  
 end  
end

또한, attr_reader 처럼 attr_writer도 지원한다.

class Song
 attr_writer :name, :artist, :duration

 def initialize(name, artist, duration)
@name = name
@artist   = artist
@duration = duration
 end
 
 def to_s  
"Song: #{@name}--#{@artist} (#{@duration})"  
 end  
end

aSong = Song.new("Bicylops", "Fleck", 260)
aSong.name="My Way"  
aSong.artist="Sinatra"
aSong.duration=225
puts aSong.to_s
>> Song: My Way--Sinatra (225)

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...