- Objective-C和Sprite Kit游戲開發(fā)從入門到精通
- 曹化宇
- 835字
- 2021-01-07 18:57:39
2.13 枚舉
接下來(lái),我們思考一個(gè)簡(jiǎn)單點(diǎn)的問(wèn)題,對(duì)于數(shù)值數(shù)據(jù)可以使用整數(shù)或浮點(diǎn)數(shù),對(duì)于“開/關(guān)”類數(shù)據(jù)可以使用布爾型,對(duì)于文本信息可以使用字符或字符串,那么,對(duì)于性別這樣的數(shù)據(jù),使用什么數(shù)據(jù)類型比較合適呢?
想正確地處理一類數(shù)據(jù),就必須清楚這類數(shù)據(jù)的值可能有哪些?就說(shuō)性別吧,大家都知道,包括男和女。不過(guò),還有一種情況,如果有人想對(duì)自己的性別保密呢?好吧,那性別數(shù)據(jù)就有可能有三種基本的數(shù)值了,包括:保密、男和女。
那么,我們使用什么類型保存性別數(shù)據(jù)呢?理論上講會(huì)有很多方案,比如,使用宏,如下面的代碼。
#define SEX_UNKNOW 0 #define SEX_MALE 1 #define SEX_FEMALE 2
或者定義常量,如下面的代碼。
const int SexUnknow = 0; const int SexMale = 1; const int SexFemale = 2;
不過(guò),如果能夠定義一個(gè)性別類型是不是會(huì)更加直觀呢?好的,我們馬上使用enum關(guān)鍵字定義枚舉類型,如下面的代碼就定義了一個(gè)性別枚舉類型。
enum ESex {Unknow, Male, Female};
然后,我們使用如下代碼來(lái)使用這個(gè)類型。
enum ESex tomSex = Male;
我們可以看到,在定義性別類型的變量時(shí),同樣使用了enum關(guān)鍵字。不過(guò),為了更方便地使用枚舉類型,我們也可以使用typedef關(guān)鍵字定義它的別名。此時(shí),我們可以單獨(dú)定義,也可以在定義ESex枚舉類型時(shí)直接定義。
typedef enum ESex Sex;
或:
typedef enum ESex {Unknow, Male, Female} Sex;
然后,我可以直接使用Sex類型來(lái)定義變量。
Sex tomSex = Male; NSLog(@"%i", tomSex);
當(dāng)我們需要顯示枚舉變量(如tomSex)的值時(shí),只能使用整數(shù)來(lái)顯示,其中,枚舉類型中定義的第一個(gè)成員值為0,第二個(gè)成員值為1,第三個(gè)成員值為2,以此類推。當(dāng)然,如果需要自己指定枚舉成員的值也是可以的,如下面的代碼。
typedef enum ESex {Unknow = 0, Male = 1, Female = 2} Sex;
此外,枚舉成員的值也可以不從0開始,但我們并不建議這樣使用,除非項(xiàng)目中的數(shù)據(jù)真的不允許為0。如下面定義的太空門枚舉類型。
typedef enum ESpaceGate { EarthGate = 300, MoonGate = 301, MarsGate = 400, PlanetIGate = 9000 } SpaceGate;
最后,在使用枚舉類型時(shí)應(yīng)注意一些問(wèn)題:
? 總是保留一個(gè)未知(Unknow)的枚舉項(xiàng)是一種安全措施,這樣可以保證在任何時(shí)候都能夠處理意外數(shù)據(jù),比如,突然出現(xiàn)了一個(gè)可以到達(dá)異次元空間的太空門,或者真的出現(xiàn)了雌雄同體。
? 在Objective-C中的枚舉值是整數(shù),如果需要保存到文件或數(shù)據(jù)庫(kù)中,應(yīng)使用整數(shù)類型。
- 從原始數(shù)據(jù)到分析報(bào)告:Excel數(shù)據(jù)透視表高效達(dá)人養(yǎng)成記
- Excel完全自學(xué)教程
- Excel函數(shù)與公式標(biāo)準(zhǔn)教程(實(shí)戰(zhàn)微課版)
- Getting Started with Simulink
- Word辦公應(yīng)用案例教程
- Excel 2016辦公專家從入門到精通(視頻自學(xué)版)
- Office 2013中文版從入門到精通
- Photoshop+Illustrator平面設(shè)計(jì)案例實(shí)戰(zhàn)從入門到精通:視頻自學(xué)全彩版
- Office辦公應(yīng)用技巧
- 辦公自動(dòng)化教程(第2版)
- 用圖表說(shuō)話:Excel精美實(shí)用圖表大制作
- AI智能化辦公:ChatGPT使用方法與技巧從入門到精通
- Pentaho 5.0 Reporting by Example
- Excel/PPT 2013辦公應(yīng)用從入門到精通
- Word-Excel- PPT 2016入門與提高