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)

댓글 없음:

댓글 쓰기

시스템 부팅시 도커 컨테이너 자동 실행

Docker 컨테이너를 운용중인 시스템이 Reboot 되버리면 컨테이너가 자동으로 올라오지 않아 불편해서 시스템 리붓시 컨테이너를 자동으로 시작되게 init 데몬에 등록하기로 했습니다. 서버는 Ubuntu 17.10 Docker는 17.0...