Swift常用術(shù)語(yǔ)表(2021年)


Swift中有如此多的語(yǔ)法和功能術(shù)語(yǔ)土思,有時(shí)候容易感到困惑。因此,此文章將充當(dāng)術(shù)語(yǔ)的一站式詞典炮车,為Swift語(yǔ)言中使用的所有常見(jiàn)術(shù)語(yǔ)提供定義。

@

  • @autoclosure:作為閉包的函數(shù)參數(shù)附加的屬性酣溃,它要求Swift將在閉包中使用它的任何代碼靜默包裝起來(lái)瘦穆,而不是要求用戶手工完成。這很少使用赊豌,但是在assert()函數(shù)中很重要扛或。
  • @available:附加到類型或函數(shù)的屬性,將其標(biāo)記為對(duì)特定版本的Swift或操作系統(tǒng)可用或不可用碘饼。
  • @discardableResult:附加到返回值的方法的屬性熙兔,如果調(diào)用者愿意,則將返回值標(biāo)記為可以安全忽略艾恼。如果不使用此選項(xiàng)住涉,則如果不對(duì)函數(shù)的返回值進(jìn)行任何操作,Swift將顯示警告钠绍。
  • @dynamicCallable:附加到類型上的屬性舆声,用于將其標(biāo)記為可直接調(diào)用,主要是使Swift可以更輕松地與動(dòng)態(tài)語(yǔ)言(例如Python)進(jìn)行交互柳爽。
  • @dynamicMemberLookup:附加到類型的屬性媳握,用于將類型標(biāo)記為能夠使用特殊方法處理未定義的屬性,主要是使Swift可以更輕松地與動(dòng)態(tài)語(yǔ)言(例如Python)進(jìn)行交互磷脯。
  • @escaping:附加到作為閉包的函數(shù)參數(shù)的屬性蛾找,它告訴Swift閉包將在函數(shù)返回后使用。反過(guò)來(lái)赵誓,這將導(dǎo)致Swift安全地存儲(chǔ)閉包腋粥,以免過(guò)早銷毀它晦雨。
  • @objc:用于標(biāo)記必須由Objective-C代碼訪問(wèn)的方法和屬性的屬性。默認(rèn)情況下隘冲,Swift不會(huì)將其代碼提供給Objective-C訪問(wèn)闹瞧,以免使代碼變得比需要的大。
  • @objcMembers:用于標(biāo)記類的屬性展辞,其中所有屬性和方法都必須可由Objective-C代碼訪問(wèn)奥邮。默認(rèn)情況下,Swift不會(huì)將其代碼提供給Objective-C訪問(wèn)罗珍,以免使代碼變得比需要的大洽腺。
  • @unknown:附加在開(kāi)關(guān)塊默認(rèn)情況下的屬性,該屬性使代碼可以處理將來(lái)可能在某個(gè)時(shí)候添加的枚舉情況覆旱,而不會(huì)破壞源兼容性蘸朋。

a

  • Access control:一組關(guān)鍵字,用于控制其他代碼如何訪問(wèn)屬性扣唱。 open表示可以從任何地方訪問(wèn)和覆蓋該屬性藕坯,public表示可以從任何地方訪問(wèn)該屬性,但是只能在它來(lái)自的模塊中覆蓋噪沙; internal表示可以從同一模塊內(nèi)部的任何位置訪問(wèn)該屬性炼彪,fileprivate意味著該屬性可以可以從同一文件內(nèi)的任何位置訪問(wèn)該屬性,而private意味著可以從同一類型內(nèi)的任何位置訪問(wèn)該屬性正歼。
  • ABI:關(guān)于Swift編譯器如何生成二進(jìn)制文件的描述:如何在內(nèi)存中布置和訪問(wèn)數(shù)據(jù)結(jié)構(gòu)辐马,如何調(diào)用函數(shù),等等局义。
  • API:庫(kù)為解決特定問(wèn)題而公開(kāi)的類喜爷,結(jié)構(gòu),方法和屬性的集合萄唇。應(yīng)用程序編程接口的縮寫(xiě)檩帐。
  • Argument:傳遞給函數(shù)的值的名稱,將在函數(shù)內(nèi)部使用穷绵。例如轿塔,在sayHello(to:“ Paul”)中,to部分是一個(gè)參數(shù)仲墨。許多人只是說(shuō)“參數(shù)”而不是“論點(diǎn)”勾缭,但是論點(diǎn)在技術(shù)上是正確的。
  • Array:任何類型的值的順序集合目养,例如帶中名稱的數(shù)組俩由。
  • Associated type(關(guān)聯(lián)類型):協(xié)議中缺少的類型,必須由符合協(xié)議的任何類型來(lái)指定癌蚁。關(guān)聯(lián)類型使我們?cè)谔砑右恢滦詴r(shí)具有靈活性:可以說(shuō)要遵守我們的協(xié)議幻梯,您必須具有一組項(xiàng)目兜畸,但是我們不在乎這些項(xiàng)目的數(shù)據(jù)類型是什么。關(guān)聯(lián)類型在Swift中是一個(gè)單詞:associatedtype碘梢。
  • Associated value(關(guān)聯(lián)值):已添加到枚舉用例中以提供一些額外含義的值咬摇。例如,您可能有一個(gè)枚舉案例煞躬,說(shuō)天氣多風(fēng)肛鹏,然后添加一個(gè)關(guān)聯(lián)值,說(shuō)天氣多風(fēng)恩沛。

b

  • Block:可以表示任何以{開(kāi)頭并以}結(jié)尾的代碼塊(“代碼塊”)在扰,但是“塊”也是閉包的Objective-C名稱。
  • Boolean:一種存儲(chǔ)true或false的數(shù)據(jù)類型雷客。
  • Brace(括號(hào)):用于打開(kāi)和關(guān)閉大括號(hào){和}的名稱芒珠。
  • Bracket(括號(hào)):用于打開(kāi)和關(guān)閉方括號(hào)的名稱,[和]
  • Break(中斷):退出當(dāng)前循環(huán)的關(guān)鍵字搅裙。如果與帶標(biāo)簽的語(yǔ)句一起使用皱卓,例如break myLoop,它將跳出指定的塊呈宇。

c

  • Capturing values(捕獲值):閉包過(guò)程的名稱好爬,保留對(duì)在閉包內(nèi)部使用但在外部創(chuàng)建的值的引用局雄。這與復(fù)制不同:閉包引用原始值甥啄,而不是其自己的副本,因此炬搭,如果原始值更改蜈漓,則閉包的值也更改。
  • CaseIterable:可應(yīng)用于枚舉的Swift協(xié)議宫盔。如果枚舉的個(gè)案沒(méi)有關(guān)聯(lián)值融虽,則編譯器將生成allCases數(shù)組,使您可以遍歷枚舉中的個(gè)案灼芭。
  • Catch(捕獲):一個(gè)關(guān)鍵字有额,用于啟動(dòng)代碼塊來(lái)處理錯(cuò)誤。您可以指定應(yīng)捕獲的錯(cuò)誤類型彼绷,并使用通用的“全部捕獲”塊來(lái)捕獲所有其他錯(cuò)誤巍佑。與之配對(duì)。
  • CGFloat:一個(gè)浮點(diǎn)數(shù)寄悯,根據(jù)平臺(tái)的不同萤衰,它可能等效于Double或Float。
  • Class:一種自定義數(shù)據(jù)類型猜旬,可以具有一個(gè)或多個(gè)屬性以及一個(gè)或多個(gè)方法脆栋。與結(jié)構(gòu)不同倦卖,類是引用類型。
  • Class inheritance(類繼承):一種類可以在另一類上構(gòu)建椿争,并繼承其所有方法和屬性的能力怕膛。有些語(yǔ)言允許一個(gè)類從多個(gè)父級(jí)繼承,但是Swift不允許秦踪。
  • Closure:匿名函數(shù)嘉竟,該函數(shù)自動(dòng)保留對(duì)其使用的,在函數(shù)外部聲明的任何值的引用洋侨。
  • Codable:一種協(xié)議舍扰,它允許在結(jié)構(gòu)或類與JSON或XML之間輕松轉(zhuǎn)換。
  • Collection:一種序列類型使用的Swift協(xié)議希坚,您可以遍歷多次而不會(huì)破壞它們或影響集合边苹,例如數(shù)組和字典。
  • Comparable(可比性):一種通用的Swift協(xié)議裁僧,其中規(guī)定可以使用<將排序類型放入訂單中个束。
  • Compiler directive(編譯器指令):使用#編寫(xiě)的幾段特殊代碼之一,用作對(duì)編譯器的指令聊疲。例如茬底,編譯器指令可以檢查我們是否以模擬器為目標(biāo),并編譯兩個(gè)代碼變體之一获洲。
  • Compound assignment operator(復(fù)合賦值運(yùn)算符):修改值并將其同時(shí)賦值回原始變量的運(yùn)算符阱表。例如,score + = 1將1加到當(dāng)前值贡珊。
  • Computed property(計(jì)算屬性):任何沒(méi)有簡(jiǎn)單存儲(chǔ)區(qū)值的屬性最爬,而是每次通過(guò)運(yùn)行某些代碼訪問(wèn)該屬性時(shí)計(jì)算的屬性。
  • Condition:使用if語(yǔ)句評(píng)估為true或false的所有檢查门岔。您可以提供在條件為真時(shí)運(yùn)行的代碼爱致,以及其他
  • Conditional conformance(條件一致性):僅在滿足特定條件的情況下,才能說(shuō)類型符合協(xié)議的能力寒随。例如糠悯,Swift的數(shù)組僅在其元素也符合Equatable時(shí)才符合Equatable。
  • Constant:程序中的任何命名數(shù)據(jù)都可能在程序運(yùn)行時(shí)保持不變妻往。
  • Continue:退出循環(huán)的當(dāng)前迭代的關(guān)鍵字互艾,使循環(huán)立即開(kāi)始其下一個(gè)迭代。如果與帶標(biāo)簽的語(yǔ)句一起使用蒲讯,例如繼續(xù)myLoop忘朝,它將繼續(xù)指定的塊。
  • Controller:程序中處理邏輯的一部分判帮。模型視圖控制器結(jié)構(gòu)的一部分局嘁。

d

  • Data:一種類型溉箕,可保存任何類型的二進(jìn)制數(shù)據(jù)。
  • Default case:與所有其他值匹配的開(kāi)關(guān)塊的特殊情況悦昵。
  • Default parameter:附加有默認(rèn)值的功能參數(shù)肴茄,以允許調(diào)用者不提供默認(rèn)值并獲得合理的行為。例如但指,func checkSettings(debugMode:Bool = true)可以稱為checkSettings(debugMode:true)或checkSettings(debugMode:false)寡痰,也可以稱為checkSettings()-缺少debugMode值將假定為true,因?yàn)檫@是默認(rèn)值棋凳。
  • Defer(延遲):一個(gè)關(guān)鍵字拦坠,允許我們安排退出當(dāng)前范圍的工作。
  • Deinitializer:初始化類的實(shí)例被銷毀時(shí)調(diào)用的一種特殊方法剩岳。這些可能不接受參數(shù)贞滨,并且在結(jié)構(gòu)上不存在。
  • Dictionary:使用鍵存儲(chǔ)的高性能拍棕,無(wú)序值集合晓铆,用于快速訪問(wèn)。
  • Do:一個(gè)關(guān)鍵字绰播,它啟動(dòng)可能引發(fā)錯(cuò)誤的代碼塊骄噪。與漁獲配對(duì)。
  • Double:高精度浮點(diǎn)數(shù)蠢箩,例如3.1或3.141592654链蕊。

e

  • Enum:一組命名值,不僅使用字符串或整數(shù)忙芒,更容易記住和安全示弓。例如讳侨,您可以使用北呵萨,南,東和西創(chuàng)建方向的枚舉-例如跨跨,這比使用0潮峦、1、2和3更好勇婴。 “枚舉”的縮寫(xiě)忱嘹。發(fā)音為“ ee-numb”,但“ ee-noom”是可接受的變體耕渴。
  • Equatable:一種通用的Swift協(xié)議拘悦,其中指出可以使用==比較一致性類型是否相等。
  • Error:我們自己的枚舉可以遵循的Swift協(xié)議橱脸,然后我們可以使用該協(xié)議引發(fā)函數(shù)錯(cuò)誤础米。
  • Expression(表達(dá)式):一些評(píng)估為值的代碼分苇。例如,12 * 12的值為144屁桑。
  • Extension(擴(kuò)展):添加到具體類型(例如Int)的一組其他方法和計(jì)算屬性医寿。

f

  • Fallthrough:在切換塊中使用的關(guān)鍵字,意思是“緊隨此之后繼續(xù)執(zhí)行案例”蘑斧。
  • Failable initializer(失敗的初始值設(shè)定項(xiàng)):返回初始值的初始值設(shè)定項(xiàng)靖秩,因?yàn)槌跏蓟赡苡捎谀撤N原因而失敗。這些被寫(xiě)為init竖瘾?()或init9低弧()。
  • Final class(最終類):不能被其他任何東西繼承的類捕传。
  • Float:低精度浮點(diǎn)數(shù)事扭,例如3.1或3.141592654。
  • For loop :循環(huán)計(jì)算序列中所有值(例如數(shù)組或范圍)的循環(huán)乐横。
  • Force unwrap(強(qiáng)制解包):首先在可選字段中使用值而不檢查其存在的過(guò)程求橄。如果可選參數(shù)為空(如果沒(méi)有值),則強(qiáng)制展開(kāi)將使您的代碼崩潰葡公。
  • Framework:您正在使用的代碼集合罐农。框架與庫(kù)的不同之處在于催什,框架通常接管其操作的控制權(quán)涵亏,并在需要信息時(shí)回調(diào)給您。
  • Function:執(zhí)行特定的可重用任務(wù)的代碼的命名部分蒲凶。您可以將參數(shù)傳遞給該函數(shù)以自定義其運(yùn)行方式气筋,并且該函數(shù)可能返回一個(gè)或多個(gè)作為其工作結(jié)果的值。
  • Functional programming(函數(shù)式編程):一種編程方法旋圆,它傾向于與函數(shù)之間收發(fā)不變的數(shù)據(jù)宠默,避免產(chǎn)生副作用,并將函數(shù)組合在一起灵巧。

g

  • Generics(泛型):一種類型或功能可與多種數(shù)據(jù)類型一起使用的能力搀矫。 例如,Swift的數(shù)組是通用的刻肄,因?yàn)槟梢詣?chuàng)建一個(gè)存儲(chǔ)整數(shù)的數(shù)組瓤球,一個(gè)存儲(chǔ)字符串的數(shù)組,等等敏弃。
  • guard(保護(hù)):一種Swift語(yǔ)法卦羡,用于檢查條件是否為真,如果條件不正確,則強(qiáng)制您立即退出當(dāng)前范圍绿饵。 這通常用作防護(hù)讓逝薪,它檢查可選選項(xiàng)是否具有值,如果有蝴罪,則為該可選值創(chuàng)建一個(gè)新的常量董济,以便可以安全地使用它。 如果沒(méi)有值要门,則保護(hù)條件失敗虏肾,您必須退出當(dāng)前作用域。

h

  • Hashable(可散列):一種通用的Swift協(xié)議欢搜,其中規(guī)定可以使用散列值表示符合類型封豪。
  • Higher-order function(高階函數(shù)):一個(gè)函數(shù),該函數(shù)接受另一個(gè)函數(shù)作為參數(shù)炒瘟,或者將一個(gè)函數(shù)作為其返回值發(fā)送回去吹埠。

i

  • if let:一種Swift語(yǔ)法,用于檢查可選參數(shù)是否具有值疮装,如果存在缘琅,則為該可選參數(shù)的值創(chuàng)建一個(gè)新常數(shù),以便可以安全地使用它廓推。如果沒(méi)有值刷袍,則if條件失敗,您可以改為運(yùn)行else塊樊展。
  • Implicitly unwrapped optional(隱式解開(kāi)的可選):一種特殊的Swift可選呻纹,可能包含也可能不包含值,但在使用前無(wú)需進(jìn)行檢查专缠。如果您嘗試使用沒(méi)有值的隱式展開(kāi)的可選內(nèi)容雷酪,則您的應(yīng)用程序?qū)⒈罎ⅰ?/li>
  • Indirect enum(間接枚舉):經(jīng)過(guò)特殊編譯的枚舉,以便可以在其關(guān)聯(lián)值中引用自身涝婉。例如哥力,如果您有一個(gè)鏈接列表枚舉,需要將另一個(gè)鏈接列表項(xiàng)作為關(guān)聯(lián)值引用嘁圈,則此列表必須是間接的省骂。
  • Infinite loop(無(wú)限循環(huán)):直到您這樣說(shuō),循環(huán)永遠(yuǎn)不會(huì)結(jié)束最住。這通常是通過(guò)將布爾變量設(shè)置為true來(lái)完成的-您可以在希望循環(huán)結(jié)束時(shí)立即將其設(shè)置為false。
  • Initializer(初始化程序):一種特殊的方法怠惶,用于創(chuàng)建結(jié)構(gòu)或類的實(shí)例涨缚。您可以有許多初始化程序,對(duì)于類,可以在您自己的初始化程序中調(diào)用父初始化程序脓魏。
  • inout parameter:一個(gè)函數(shù)參數(shù)兰吟,當(dāng)在函數(shù)內(nèi)部更改時(shí),仍然在函數(shù)外部更改茂翔。
  • Integer:整數(shù)混蔼,例如5、55或5500萬(wàn)珊燎。

?

  • Keypath(關(guān)鍵路徑):一種無(wú)需實(shí)際讀取即可引用屬性的方法惭嚣。
  • Keyword:作為Swift構(gòu)造具有特定含義的任何單詞,例如class悔政,continue和try晚吞。

l

  • Labeled statement(帶標(biāo)簽的語(yǔ)句):附加到特定代碼塊(例如循環(huán)或條件)的名稱,即使您位于其他代碼塊中谋国,也可以使它特別地突兀槽地。例如,如果您位于第三個(gè)循環(huán)內(nèi)的循環(huán)內(nèi)芦瘾,則可以退出最外層的循環(huán)捌蚊。
  • Lazy:將屬性標(biāo)記為僅在首次訪問(wèn)時(shí)才創(chuàng)建的關(guān)鍵字。這是一種性能優(yōu)化近弟,因?yàn)檫@意味著如果永不訪問(wèn)該屬性逢勾,則永遠(yuǎn)不會(huì)完成計(jì)算其值所需的工作。
  • Library:您正在使用的代碼的集合藐吮。庫(kù)與框架的不同之處在于溺拱,庫(kù)只是類,結(jié)構(gòu)谣辞,枚舉等的集合迫摔,供您隨意使用。

m

  • Memberwise initializer(成員初始化器):由Swift編譯器自動(dòng)生成的結(jié)構(gòu)的初始化器泥从,要求所有屬性必須具有值句占。如果在struct中實(shí)現(xiàn)自己的初始化程序,則Swift將不再生成成員初始化程序躯嫉。
  • Method:屬于結(jié)構(gòu)或類的函數(shù)纱烘。
  • Model:程序中存儲(chǔ)數(shù)據(jù)的一部分。模型視圖控制器結(jié)構(gòu)的一部分祈餐。
  • Multi-line strings:跨多行的字符串擂啥。 Swift中的多行字符串必須在自己的行上以三個(gè)雙引號(hào)開(kāi)頭和結(jié)尾。
  • Mutating method:一種結(jié)構(gòu)上的方法帆阳,它將改變結(jié)構(gòu)的屬性之一哺壶。必須使用它,因?yàn)橹挥锌勺兘Y(jié)構(gòu)體才能調(diào)用它們的變異方法。類不需要突變方法山宾,因?yàn)轭愔械拿總€(gè)方法都可以在沒(méi)有關(guān)鍵字的情況下進(jìn)行突變至扰。

n

  • Nested type(嵌套類型):在另一個(gè)類或結(jié)構(gòu)內(nèi)定義的一個(gè)類或結(jié)構(gòu)。
  • Nil:Swift的缺失數(shù)據(jù)術(shù)語(yǔ)资锰。沒(méi)有值的可選值將設(shè)置為nil敢课。
  • Nil coalescing:Swift中的運(yùn)算符,寫(xiě)為??绷杜,如果有可選值直秆,則使用可選值,否則使用默認(rèn)值接剩。
  • Non-throwing function(非拋出函數(shù)):不能拋出錯(cuò)誤的函數(shù)切厘。不能使用throws標(biāo)記這些標(biāo)記,也不能使用throw關(guān)鍵字懊缺。

o

  • Objective-C:蘋(píng)果公司的第一款編程語(yǔ)言疫稿,也是Swift的先驅(qū)。
  • Operand(操作數(shù)):與運(yùn)算符一起使用的值鹃两。例如遗座,在2 + 3中,2和3是操作數(shù)俊扳。
  • Operator(運(yùn)算符):在其左側(cè)和/或右側(cè)的值上充當(dāng)函數(shù)的任何符號(hào)途蒋。例如,+是將兩個(gè)值加在一起的運(yùn)算符馋记。
  • Operator overloading(運(yùn)算符重載):一個(gè)運(yùn)算符(例如+)根據(jù)其使用方式執(zhí)行多項(xiàng)操作的能力号坡。例如,1 +1是一個(gè)整數(shù)加法梯醒,但是“ Hello” +“ Paul”會(huì)將字符串連接在一起宽堆。
  • Optional(可選):一種包裝其他類型的類型,例如String或Int茸习,但增加了根本不存儲(chǔ)任何值的功能畜隶。 “無(wú)值”不同于所有常規(guī)整數(shù)值,包括零号胚。 Swift大量使用可選參數(shù)作為提供運(yùn)行時(shí)安全性的一種方式籽慢,編譯器強(qiáng)迫我們正確使用它們。
  • Optional chaining(可選鏈接):在一行代碼中使用多個(gè)可選方法或?qū)傩缘哪芰γㄐ病H绻鼈冎械娜魏我粋€(gè)為零箱亿,那么該行的執(zhí)行將停止,但是如果它們?nèi)砍晒Χ拍瑒t將返回一個(gè)可選值极景。例如察净,用戶驾茴?.name盼樟?.uppercased()。
  • Override method(覆蓋方法):類的方法锈至,其名稱晨缴,參數(shù)和返回類型與該類的父類的方法相同。 overlay關(guān)鍵字告訴Swift編譯器您了解您正在更改行為峡捡。

p

  • Parameter:已傳遞到函數(shù)中的值的名稱击碗,將在函數(shù)內(nèi)部使用。例如们拙,在func sayHello(to:String)中稍途,to部分是一個(gè)參數(shù)。
  • Parameter label(參數(shù)標(biāo)簽):分配給影響其在外部使用方式的功能參數(shù)的自定義名稱砚婆。例如械拍,在sayHello(to name:String)中,調(diào)用該函數(shù)的人會(huì)說(shuō)sayHello(to:“ Paul”)装盯,但是在函數(shù)內(nèi)部您將引用name坷虑。
  • Parenthesis(括號(hào)):用于打開(kāi)和關(guān)閉圓括號(hào)(和)的名稱。
  • Polymorphism(多態(tài)性):對(duì)象顯示為多種不同類型并用作多種類型的能力埂奈。例如迄损,如果您已將Labrador類實(shí)例定義為父類,則它們也可以用作Dog and Mammal账磺。
  • Property(屬性):屬于類芹敌,結(jié)構(gòu)或枚舉的常量或變量。
  • Property observer(屬性觀察者):使用willSet和didSet添加到屬性的代碼垮抗,每當(dāng)更改屬性時(shí)都會(huì)調(diào)用該代碼氏捞。
  • Property wrapper(屬性包裝器):圍繞屬性設(shè)置的屬性,可為其提供自定義功能借宵。例如幌衣,您可以編寫(xiě)一個(gè)@UserDefaults屬性包裝器,以簡(jiǎn)化將數(shù)據(jù)加載和保存到用戶默認(rèn)值的過(guò)程壤玫。
  • Protocol(協(xié)議):類型必須符合的條件列表豁护,例如屬性名稱和方法。協(xié)議允許我們以相同的方式對(duì)待許多對(duì)象欲间,因?yàn)樗鼈儗?shí)現(xiàn)了使協(xié)議起作用所需的所有行為楚里。
  • Protocol extension :一組添加到協(xié)議中的其他方法和計(jì)算屬性,例如Equatable猎贴。
  • Protocol inheritance:一種協(xié)議從另一協(xié)議繼承需求的能力班缎。例如蝴光,可比較協(xié)議繼承自Equatable。
  • Protocol-oriented programming(面向協(xié)議的編程POP):一種編程方法达址,該方法支持通過(guò)協(xié)議擴(kuò)展來(lái)重用代碼盹靴,從而提供了多重繼承的好處,而又沒(méi)有一些復(fù)雜性屁置。特別是搞监,面向協(xié)議的編程(POP)不能將存儲(chǔ)的屬性添加到類型中,因此減少了麻煩满葛。

r

  • Range:范圍跨越兩個(gè)值之間的距離径簿,最大到有時(shí)包括最終值。這主要用于數(shù)字:1 .. <4包括數(shù)字1嘀韧、2和3篇亭,而范圍1 ... 4包括數(shù)字1、2锄贷、3和4译蒂。范圍也可以從其他數(shù)據(jù)中得出類型,例如日期肃叶。
  • Raw strings:可以在需要使用反斜杠和引號(hào)而又沒(méi)有常規(guī)含義的情況下指定自定義字符串定界符的功能蹂随。
  • Raw value:可以將枚舉值映射到的簡(jiǎn)單基礎(chǔ)數(shù)據(jù)類型,以進(jìn)行加載和保存因惭。例如岳锁,您可能會(huì)說(shuō)水星,金星和地球這兩個(gè)行星的原始原始值為1蹦魔、2和3激率。
  • Reference type :將數(shù)據(jù)間接存儲(chǔ)在內(nèi)存中的任何類型,變量或常量實(shí)際上只是該內(nèi)存的指針(或引用)勿决。如果將第二個(gè)變量指向引用類型乒躺,則它將指向與原始引用相同的內(nèi)存數(shù)據(jù),因此該數(shù)據(jù)是共享的低缩。
  • Repeat loop:只要條件為真嘉冒,就會(huì)繼續(xù)執(zhí)行的循環(huán)。如果其條件開(kāi)始為假咆繁,它將至少執(zhí)行一次讳推。
  • Rethrowing functions(重新拋出函數(shù)):使用rethrows關(guān)鍵字的函數(shù),以便僅當(dāng)它接受的閉包拋出錯(cuò)誤時(shí)才拋出錯(cuò)誤玩般。
  • Return type:函數(shù)表示將返回的數(shù)據(jù)類型银觅。 Swift總是強(qiáng)制執(zhí)行此操作,因此如果您說(shuō)要返回一個(gè)字符串坏为,則必須這樣做究驴。
  • Runtime:代碼運(yùn)行時(shí)镊绪,而不是編譯時(shí),即代碼構(gòu)建時(shí)洒忧。

s

  • Scope:變量和常量有效的代碼區(qū)域蝴韭。每次使用右括號(hào)時(shí),都會(huì)啟動(dòng)一個(gè)新的作用域:所有先前的變量和常量在該作用域中均保持有效跑慕,但是在該作用域內(nèi)聲明的所有變量和常量?jī)H在該作用域以右括號(hào)結(jié)束之前才有效万皿。
  • Selector:一種在不實(shí)際調(diào)用函數(shù)的情況下引用函數(shù)的方法摧找,通常用于以后調(diào)用它們的目的核行。
  • Serialization:將對(duì)象轉(zhuǎn)換為文本或二進(jìn)制,反之亦然的過(guò)程蹬耘。例如芝雪,將用戶數(shù)組轉(zhuǎn)換為JSON,或?qū)SON轉(zhuǎn)換為用戶數(shù)組综苔。
  • Set:符合哈希協(xié)議的任何類型的高性能惩系,無(wú)序值集合。
  • Shorthand parameter name(速記參數(shù)名稱):閉包中可用的特殊參數(shù)名稱如筛,用美元符號(hào)表示堡牡,數(shù)字從0開(kāi)始。例如杨刨,如果閉包接受名稱字符串和年齡整數(shù)晤柄,則可以將字符串稱為0,將年齡稱為 1妖胀。注意:您不能將速記語(yǔ)法與常規(guī)語(yǔ)法混用和匹配芥颈。
  • some:使用不透明返回類型的關(guān)鍵字–返回類型,例如SwiftUI中的某些View表示“將返回某種View赚抡,但具體哪種類型無(wú)關(guān)緊要”爬坑。
  • Statement:執(zhí)行某種動(dòng)作的一些代碼,例如print(age)涂臣。
  • Static method:一種在結(jié)構(gòu)或類的所有實(shí)例之間共享的方法盾计,而不是每個(gè)實(shí)例都唯一。因?yàn)樗皇窃诮Y(jié)構(gòu)或類的特定實(shí)例上運(yùn)行赁遗,所以它無(wú)法訪問(wèn)未標(biāo)記為靜態(tài)的任何屬性署辉。
  • Static property:在結(jié)構(gòu)或類的所有實(shí)例之間共享的屬性,而不是每個(gè)實(shí)例都唯一吼和。
    StaticString:Swift的String的一種特殊形式涨薪,必須手工鍵入-您必須直接將字符串直接鍵入代碼中,而不是使用字符串插值炫乓。
  • String:字母的集合刚夺,例如“ Hello”献丑。
  • String interpolation:Swift將變量和常量的值插入字符串的能力,例如“ Hello侠姑,\(name)”创橄。
  • Struct:一種自定義數(shù)據(jù)類型,可以具有一個(gè)或多個(gè)屬性以及一個(gè)或多個(gè)方法莽红。與類不同妥畏,結(jié)構(gòu)是值類型。
  • Subscript:與集合一起使用的特殊方法安吁,可輕松訪問(wèn)集合中的讀取和寫(xiě)入值醉蚁。例如,someArray [3]是下標(biāo)鬼店,someDictionary [“ name”]也是如此网棍。
  • Switch case:一種在一個(gè)代碼塊中評(píng)估多個(gè)條件的系統(tǒng)。例如妇智,您可以使用switch age來(lái)評(píng)估age變量滥玷,然后使用0到10、10到20巍棱、20到30的個(gè)案惑畴,依此類推。開(kāi)關(guān)塊在Swift中必須是詳盡無(wú)遺的航徙,這意味著它們必須具有覆蓋所有可能值的大小寫(xiě)如贷。
  • Syntactic sugar:一種特殊的Swift語(yǔ)法名稱,旨在掩蓋復(fù)雜性捉偏。該名稱源于這樣的想法倒得,即最好創(chuàng)建簡(jiǎn)短而甜美的語(yǔ)法,使其與較長(zhǎng)的語(yǔ)法相同夭禽。例如霞掺,[String]是Array <String>的語(yǔ)法糖。
  • Synthesize:Swift編譯器代表您生成代碼的名稱讹躯。例如菩彬,如果您說(shuō)一個(gè)自定義結(jié)構(gòu)符合Equatable,并且其所有屬性都已經(jīng)符合Equatable潮梯,則Swift可以為其合成一個(gè)==函數(shù)骗灶。

t

  • Ternary operator(三元運(yùn)算符):使用三個(gè)值的運(yùn)算符,用Swift編寫(xiě)為秉馏? :耙旦。例如,isEnabled萝究? 10:如果isEnabled為true免都,則100將返回10锉罐,否則為100。
  • Throwing function(投擲函數(shù)):具有拋出錯(cuò)誤的功能的函數(shù)绕娘。這些必須在Swift中使用throws關(guān)鍵字進(jìn)行標(biāo)記脓规,并使用try進(jìn)行調(diào)用。
  • Trailing closure syntax(尾隨閉包語(yǔ)法):接受閉包作為其最終參數(shù)的函數(shù)在函數(shù)的括號(hào)后指定閉包的能力险领,這通常有助于使函數(shù)調(diào)用更易于閱讀侨舆。
  • try catch:運(yùn)行throwing函數(shù)并捕獲發(fā)生的任何錯(cuò)誤的能力。您必須開(kāi)始使用do塊绢陌,然后使用try調(diào)用其中的任何throw方法挨下,最后添加一個(gè)或多個(gè)catch塊以捕獲任何錯(cuò)誤。編寫(xiě)catch塊以捕獲所有錯(cuò)誤有時(shí)被稱為Pokémoncatch下面,因?yàn)椤澳仨毑东@所有東西”复颈。
  • Tuple(元組):任何類型的值的固定大小的集合,例如匿名結(jié)構(gòu)沥割。發(fā)音為“ tyoo-pull”或“ too-pull”,有時(shí)甚至是“ tupple”凿菩。
  • Type alias:類型別名是指定哪種類型應(yīng)填充關(guān)聯(lián)類型的功能机杜。通常不需要這樣做,因?yàn)镾wift可以通過(guò)查看與關(guān)聯(lián)類型一起使用的屬性來(lái)找出類型別名衅谷。類型別名在Swift中是一個(gè)字:typealias椒拗。
  • Type inference(類型推斷):Swift的編譯器能夠確定應(yīng)將哪種數(shù)據(jù)類型分配給每個(gè)變量和常量,因此您不必明確聲明它获黔。
  • Typecasting(類型轉(zhuǎn)換):將一種類型的對(duì)象視為另一種類型的對(duì)象的能力蚀苛。當(dāng)您了解有關(guān)Swift編譯器的更多信息時(shí)(例如,從情節(jié)提要中實(shí)例化視圖控制器時(shí))玷氏,這是必需的堵未。

u

  • Unwrapping optionals(解開(kāi)可選項(xiàng)):檢查可選項(xiàng)中是否有值,并提取該值以便安全使用的過(guò)程盏触。

v

  • Value type(值類型):直接將其數(shù)據(jù)存儲(chǔ)在內(nèi)存中的任何類型渗蟹。 如果將第二個(gè)變量指向值類型,它將始終完整復(fù)制數(shù)據(jù)赞辩,而不是允許其共享雌芽。
  • Variable(變量):代碼中任何已命名的數(shù)據(jù),在程序運(yùn)行時(shí)可能會(huì)更改辨嗽。
  • Variadic function(可變參數(shù)函數(shù)):一種函數(shù)世落,采用一個(gè)或多個(gè)特定類型的值,以逗號(hào)分隔糟需。 print()函數(shù)是可變參數(shù)屉佳,因?yàn)槟梢跃帉?xiě)print(1)來(lái)打印單個(gè)值来破,或者通過(guò)print(1、2忘古、3徘禁、4、5髓堪、6送朱、7、8)來(lái)打印多個(gè)值干旁。
  • View:程序的一部分驶沼,向用戶顯示可見(jiàn)的結(jié)果。 模型視圖控制器結(jié)構(gòu)的一部分争群。
  • void:缺少值回怜。 最常用于表示什么都不返回的函數(shù)的返回類型。

w

  • While loop:只要條件為真换薄,就會(huì)繼續(xù)執(zhí)行的循環(huán)玉雾。 如果其條件開(kāi)始為假,則即使執(zhí)行一次也不會(huì)執(zhí)行轻要。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末复旬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冲泥,更是在濱河造成了極大的恐慌驹碍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凡恍,死亡現(xiàn)場(chǎng)離奇詭異志秃,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)嚼酝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門浮还,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人革半,你說(shuō)我怎么就攤上這事碑定。” “怎么了又官?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵延刘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我六敬,道長(zhǎng)碘赖,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮普泡,結(jié)果婚禮上播掷,老公的妹妹穿的比我還像新娘。我一直安慰自己撼班,他們只是感情好歧匈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著砰嘁,像睡著了一般件炉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矮湘,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天斟冕,我揣著相機(jī)與錄音,去河邊找鬼缅阳。 笑死磕蛇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的十办。 我是一名探鬼主播秀撇,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼橘洞!你這毒婦竟也來(lái)了捌袜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤炸枣,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后弄唧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體适肠,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年候引,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侯养。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡澄干,死狀恐怖逛揩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情麸俘,我是刑警寧澤辩稽,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站从媚,受9級(jí)特大地震影響逞泄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一喷众、第九天 我趴在偏房一處隱蔽的房頂上張望各谚。 院中可真熱鬧,春花似錦到千、人聲如沸昌渤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膀息。三九已至,卻和暖如春加矛,著一層夾襖步出監(jiān)牢的瞬間履婉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工斟览, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毁腿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓苛茂,卻偏偏與公主長(zhǎng)得像已烤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妓羊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容