溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

第五節(jié) 枚舉和結(jié)構(gòu)體

發(fā)布時間:2020-06-15 08:07:30 來源:網(wǎng)絡(luò) 閱讀:243 作者:habout632 欄目:移動開發(fā)

本文來自于瘋子們的開源圖書

可以使用enum關(guān)鍵字來定義一個枚舉。像類和其他的命名類型一樣,枚舉類型也可以有相關(guān)的方法。

第五節(jié) 枚舉和結(jié)構(gòu)體

試驗:

寫一個函數(shù),試著通過比較他們的原始值(raw value)來對兩個Rank進行比較。

在上面的例子中,由于枚舉的原始值類型為Int,因此你只需指定第一個原始值就行,其他的原始值會按照順序依次賦值的。你也可以使用字符串或者浮點數(shù)作為枚舉的原始類型。

使用toRawfromRaw函數(shù)在原始值和枚舉值之間進行相互轉(zhuǎn)換。

第五節(jié) 枚舉和結(jié)構(gòu)體

枚舉的成員值才是真正的值,而不僅僅是原始值的另外一個寫法。事實上,在沒有原始值沒有實際含義的情況下,你根本不需要提供原始值。

第五節(jié) 枚舉和結(jié)構(gòu)體

試驗:

Suit(花色)上面添加一個color方法,當(dāng)黑桃和花子的時候,返回”black“,當(dāng)紅桃和方片的時候,返回"red"

注意上面枚舉類型的成員Hearts的兩種引用方式:當(dāng)給hearts賦值的時候,使用枚舉成員Suit.Hearts的全名來引用的,因為這個常量沒有指定一個準(zhǔn)確的類型。在switch語句中,枚舉成員是通過.Hearts這種縮寫方式引用的。因為self的類型已經(jīng)知道就是suit了。一旦你知道了枚舉的類型之后,就可以使用縮寫的形式了。

 

可以使用struct關(guān)鍵字來定義一個結(jié)構(gòu)體。結(jié)構(gòu)體支持許多和類相同的特性,包括成員方法和構(gòu)造器。結(jié)構(gòu)體和類最大的不同之處就是:在結(jié)構(gòu)體在你的代碼之后來回傳遞的時候,結(jié)構(gòu)體都被復(fù)制了一份,而類傳遞的只是引用。

第五節(jié) 枚舉和結(jié)構(gòu)體

試驗:

Card方法添加一個方法,用來創(chuàng)建整服的紙牌。每張紙牌具有不同的花色和大小。

枚舉成員的實例可以有實例自己的關(guān)聯(lián)值(Associated values)。同樣的枚舉成員的各個實例可以有不同的關(guān)聯(lián)值。關(guān)聯(lián)值是在創(chuàng)建的時候提供的。關(guān)聯(lián)值和原始值是不同的:枚舉成員的原始值對于不同的實例來說是相同的,原始值是在定義枚舉指定的。

例如:

第五節(jié) 枚舉和結(jié)構(gòu)體

試驗:

給ServerResponse再添加一個成員,同時也加入到switch語句當(dāng)中。

注意一下日出和日落次數(shù)是怎么從ServerResponse的值中獲取的。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI