跳至內容

Ruby 程式設計/參考/物件/時間

來自維基百科,一個面向開放世界的開放書籍
class Tuesdays
	attr_accessor :time, :place

	def initialize(time, place)
		@time = time
		@place = place
	end
end

feb12 = Tuesdays.new("8:00", "Rice U.")


至於物件,它很聰明,讓我給你提一些建議。首先,你永遠不想把日期或時間儲存為字串。這是一個錯誤。-- 不過出於學習目的可以這樣做,就像你的示例中那樣。但實際中並不可行。最後,你建立了一個名為 Tuesdays 的類,但沒有指定它與名為 Wednesday 的類有何不同;也就是說目的很模糊:對計算機而言,星期二沒有特別之處。如果你必須使用註釋來區分類星期二與星期三,那你通常會失敗。

class Event
	def initialize( place, time=Time.new )
		@place = place

		case time.class.to_s
			when "Array"
				@time = Time.gm( *time )
			when "Time"
				@time = time
			else
				throw "invalid time type"
		end
	end

	attr_accessor :time, :place

end

## Event at 5:00PM 2-2-2009  CST
funStart = Event.new( "evan-hodgson day", [0,0,17,2,2,2009,2,nil,false,"CST"] )

## Event now, (see time=Time.new -- the default in constructor)
rightNow = Event.new( "NOW!" );

## You can compaire Event#time to any Time object!!
if Time.new > funStart.time
	puts "We're there"
else
	puts "Not yet"
end

## Because the constructor takes two forms of time, you can do
## Event.new( "Right now", Time.gm(stuff here) )
華夏公益教科書