2013年8月13日 星期二

Objective-C Enumerated Data Types

enum 

列舉的優點就是將整數與符號名稱作連接,讓程式的可讀性變好,容易維護,而不需要去記某個數字代表的意義。
enum color{ red = 1, orange, yellow, green, blue, indigo, purple};

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        
        enum color displayColor = blue;
        NSString *displayColorStr;
        
        switch (displayColor) {
            case red:
                displayColorStr = @"紅";
                break;
            case orange:
                displayColorStr = @"橙";
                break;
            case yellow:
                displayColorStr = @"黃";
                break;
            case green:
                displayColorStr = @"綠";
                break;
            case blue:
                displayColorStr = @"藍";
                break;
            case indigo:
                displayColorStr = @"靛";
                break;
            case purple:
                displayColorStr = @"紫";
                break;
                
            default:
                displayColorStr = @"數值有誤";
                break;
        }
        
        NSLog(@"目前的顯示器顏色為:%@",displayColorStr);
    }
    return 0;
}

Anonymous enum 匿名列舉

enum {red = 1, orange, yellow, green, blue, indigo, purple} displayColor ;

沒有名稱,變數緊接著宣告,使用時機,當你懶得取名稱時 :) (大誤)
而宣告時一直打enum也挺煩的,這時可以用 typedef 關鍵字。

typedef

typedef enum {red = 1, orange, yellow, green, blue, indigo, purple} Color ;

Color display = red;

沒有留言: