2012-06-22 13 views

回答

2

幾乎完全相同的方式。唯一的區別真的是,因爲紅寶石需要常量開始一個大寫字母,則必須使用大寫字母代替K

options = KCFCalendarUnitYear | KCFCalendarUnitMonth | KCFCalendarUnitDay 
# returns 28, same as in Objective-C. 
+0

盛大!謝謝:) – bodacious

2

迪倫Markow的答案是正確的。有時候你也可能希望以編程方式從一組數值中創建一個位掩碼,而且你沒有直接使用按位或運算符的好處。

例如:

options = [] 
options << KCFCalendarUnitYear 
options << KCFCalendarUnitMonth 
options << KCFCalendarUnitDay 

這裏的一個不錯的小技巧是使用注入像這樣:

options.inject(:|) 

它有看上去像一個猴子的臉額外的好處。

+0

感謝您的笑! (:|) –