預處理指令
Swift編譯器不包含預處理器。取而代之的是,它充分利用了編譯時屬性,生成配置和語言特性來完成相同的功能。所以,Swift沒有引進預處理指令。Swift,您能夠使用全局常量來代替。因爲簡單的用於定義常量的宏會被直接被映射成Swift全局量,Swift編譯器會自動引進在C或Objective-C源文件中定義的簡單宏。
複雜宏
複雜宏是那些不用來定義常量的宏,包含帶括號的函數式宏。在Swift中你能夠使用函數和泛型來替代複雜宏。注意,在C和Objective-C源文件中定義的複雜宏在Swift是不能使用的。
複雜的宏因爲必須保證宏的代碼的語句的合法性(C語言就不用擔憂, 合法不合法都會被替換), 因此使用函數進行實現,
編譯配置
Swift代碼和C、Objective-C代碼被有條件地,以不一樣方式編輯。SWIFT代碼能夠根據生成配置的評價能夠有條件地編譯。生成配置包括true和false字面值、命令行標誌以及下表中的平臺測試函數。能夠使用-D <#Flag#>指定命令行標誌。
Swift中使用宏
創建一個類,將過去須要創建的那些簡單的宏,設爲全局變量