swift中如何達到define的效果

2021-09-11 14:29:52 字數 877 閱讀 3430

預處理指令

swift編譯器不包含預處理器。取而代之的是,它充分利用了編譯時屬性,生成配置和語言特性來完成相同的功能。因此,swift沒有引進預處理指令。

簡單巨集

在c和objective-c,您通常使用的#define指令定義的乙個基本常數,在swift,您可以使用全域性常量來代替。例如:乙個全域性定義#define fade_animation_duration 0.35,在swift可以使用let fade_animation_duration = 0.35來更好的表述。由於簡單的用於定義常量的巨集會被直接被對映成swift全域性量,swift編譯器會自動引進在c或objective-c原始檔中定義的簡單巨集。

複雜巨集

在c和objective-c中使用的複雜巨集在swift中並沒有副本。複雜巨集是那些不用來定義常量的巨集,包含帶括號的函式式巨集。您在c和objective-c使用複雜的巨集以避免型別檢查的限制,或避免重新鍵入大量的樣板**。然而,巨集也會產生bug和重構的困難。在swift中你可以使用函式和泛型來達到同樣的效果,無需任何的妥協。因此,在c和objective-c原始檔中定義的複雜巨集在swift是不能使用的。

編譯配置

swift**和c、objective-c**被有條件地,以不同方式編輯。swift**可以根據生成配置的評價可以有條件地編譯。生成配置包括true和false字面值、命令列標誌以及下表中的平台測試函式。您可以使用-d <#flag#>指定命令列標誌。

需求解決

建立乙個類,將過去需要建立的那些簡單的巨集,設為全域性變數,例如這樣

這樣在你**中需要的時候直接呼叫即可例如

self.view.backgroundcolor=custombartintcolor

vim如何達到高效

參考 1.使用 快速查詢當前游標所在的單詞 然後使用n快速找到下乙個查詢結果 使用n快速找到上乙個查詢結果 2.在.vimrc中設定 set hlsearch 用來高亮所有查詢結果 3.在.vimrc中設定 set incsearch 用來在輸入時就開始匹配第乙個查詢結果 比如上一次刪除了2個字元,...

c 中 defin的基本意思

空指令,無任何效果 include包含乙個源 檔案 define定義巨集 undef取消已定義的巨集 if如果給定條件為真,則編譯下面 ifdef如果巨集已經定義,則編譯下面 ifndef如果巨集沒有定義,則編譯下面 elif如果前面的 if給定條件不為真,當前條件為真,則編譯下面 endif結束乙...

Swift 中如何擷取String

swift 中擷取字串的方式非常麻煩,但是在oc中的字串擷取卻比較便捷,要擷取string 只需要將string 轉化為nsstring 在進行擷取就可以了 示例 如下 let mystr www.520it.com var substr mystr as nsstring substringfro...