您好,登錄后才能下訂單哦!
本文來自于瘋子們的開源圖書
可以使用enum關鍵字來定義一個枚舉。像類和其他的命名類型一樣,枚舉類型也可以有相關的方法。
試驗:
寫一個函數,試著通過比較他們的原始值(raw value)來對兩個Rank進行比較。
在上面的例子中,由于枚舉的原始值類型為Int,因此你只需指定第一個原始值就行,其他的原始值會按照順序依次賦值的。你也可以使用字符串或者浮點數作為枚舉的原始類型。
使用toRaw和fromRaw函數在原始值和枚舉值之間進行相互轉換。
枚舉的成員值才是真正的值,而不僅僅是原始值的另外一個寫法。事實上,在沒有原始值沒有實際含義的情況下,你根本不需要提供原始值。
試驗:
在Suit(花色)上面添加一個color方法,當黑桃和花子的時候,返回”black“,當紅桃和方片的時候,返回"red"
注意上面枚舉類型的成員Hearts的兩種引用方式:當給hearts賦值的時候,使用枚舉成員Suit.Hearts的全名來引用的,因為這個常量沒有指定一個準確的類型。在switch語句中,枚舉成員是通過.Hearts這種縮寫方式引用的。因為self的類型已經知道就是suit了。一旦你知道了枚舉的類型之后,就可以使用縮寫的形式了。
可以使用struct關鍵字來定義一個結構體。結構體支持許多和類相同的特性,包括成員方法和構造器。結構體和類最大的不同之處就是:在結構體在你的代碼之后來回傳遞的時候,結構體都被復制了一份,而類傳遞的只是引用。
試驗:
給Card方法添加一個方法,用來創建整服的紙牌。每張紙牌具有不同的花色和大小。
枚舉成員的實例可以有實例自己的關聯值(Associated values)。同樣的枚舉成員的各個實例可以有不同的關聯值。關聯值是在創建的時候提供的。關聯值和原始值是不同的:枚舉成員的原始值對于不同的實例來說是相同的,原始值是在定義枚舉指定的。
例如:
試驗:
給ServerResponse再添加一個成員,同時也加入到switch語句當中。
注意一下日出和日落次數是怎么從ServerResponse的值中獲取的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。