如何改寫:如何將Objective C選項的位掩碼重寫爲Ruby for RubyMotion?
NSUInteger options = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay;
要紅寶石Rubymotion?
謝謝:)
如何改寫:如何將Objective C選項的位掩碼重寫爲Ruby for RubyMotion?
NSUInteger options = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay;
要紅寶石Rubymotion?
謝謝:)
幾乎完全相同的方式。唯一的區別真的是,因爲紅寶石需要常量開始一個大寫字母,則必須使用大寫字母代替K
:
options = KCFCalendarUnitYear | KCFCalendarUnitMonth | KCFCalendarUnitDay
# returns 28, same as in Objective-C.
迪倫Markow的答案是正確的。有時候你也可能希望以編程方式從一組數值中創建一個位掩碼,而且你沒有直接使用按位或運算符的好處。
例如:
options = []
options << KCFCalendarUnitYear
options << KCFCalendarUnitMonth
options << KCFCalendarUnitDay
這裏的一個不錯的小技巧是使用注入像這樣:
options.inject(:|)
它有看上去像一個猴子的臉額外的好處。
感謝您的笑! (:|) –
盛大!謝謝:) – bodacious