在開發(fā)過程中夸研,我們經(jīng)常會遇到需要定義一些靜態(tài)方法的需求。通常我們會想到用 class
和 struct
去定義亥至,然而卻忽略了 enum
也可以擁有靜態(tài)方法。那么問題來了:既然三者都可以定義靜態(tài)方法絮供,那么我們應(yīng)該如何選擇?
下面直接給出答案:
-
class:
class
是引用類型溶握,支持繼承。如果你需要這兩個(gè)特性睡榆,那么選擇class
。 -
struct:
struct
是值類型塘揣,不支持繼承宿崭。如果你需要值類型亲铡,并且某些時(shí)候需要這個(gè)類型的實(shí)例,那么用struct
奖蔓。 -
enum:
enum
也是值類型讹堤,一般用來定義一組相關(guān)的值。如果我們想要的靜態(tài)方法是一系列的工具洲守,不需要任何的實(shí)例化和繼承沾凄,那么用enum
最合適知允。例如,在 Swift 5.0 版本的 Alamofilre 的 Alamofire.swift 文件中保屯,就是用enum
來定義了各類請求方法嗤朴。
另外,其實(shí)這個(gè)規(guī)則也適用于靜態(tài)變量雹姊。
完
想及時(shí)看到我的新文章的,可以關(guān)注我敦姻。同時(shí)也歡迎加入我管理的Swift開發(fā)群:536353151
歧杏。