2014-03-28 28 views
-2

我正在尋找一個ruby對象,當與由時間對象表示的任意時間進行比較時,它總是會返回true。 在紅寶石中是否有一個對象或東西在與時間對象進行比較時總是會返回true?有沒有一個對象或者東西在與時間對象進行比較時總會返回true?

+0

要檢測類對象的? – Hauleth

+0

不,我想比較一個時間對象與其他東西,並始終返回true –

+2

我認爲你應該詳細說明*爲什麼*你想要這個,它會導致更好的答案。無論如何,我不認爲有這樣一個開箱即用的東西,但當然你可以實現一個相應的對象,重新定義你喜歡的平等方法。 – Patru

回答

3

我會在它採取搖擺:

is_time = lambda {|x| x.class == Time ? true : false } 
+0

變量末尾的問號只是語法上的糖衣,它實際上並沒有爲編譯器做任何特別的事情 –

+2

其實問號不允許在局部變量的名稱中出現,這是一個語法錯誤。另外'x.is_a?(時間)? true:false'相當於'x.is_a?(Time)'。 – toro2k

+0

點...... –

0

是的。您需要使用Time類與時間對象進行比較,使用===方法。任何時間對象,總是會給予true,無論何時您將使用Time#===。在Ruby中記得Time是一個類,它也是一個對象。

例子:

irb(main):001:0> require 'time' 
=> true 
irb(main):002:0> Time === Time.now 
=> true 
irb(main):003:0> 
+0

對不起,我正在尋找一個任意時間比較,總是會返回true –

+0

@eat_a_lemon這是什麼*東西*? –

+0

多數民衆贊成多說,我正在尋找 –

1

不知道,如果這有助於

require 'time' 
a = Time.now 

false == a.nil? #=> true 
相關問題