




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、詳解Swift語言中的類與結構體這篇文章主要介紹了Swift語言中的類與結構體,是Swift入門學習中的基礎知識,需要的朋友可以參考下類 在 Swift 中類是建立靈活的構建塊。類似于常量,變量和函數(shù),用戶可以定義的類的屬性和方法。Swift給我們提供了聲明類,而無需用戶創(chuàng)建接口和實現(xiàn)文件的功能。Swift 允許我們創(chuàng)建類作為單個文件和外部接口,將默認在類一次初始化來創(chuàng)建。 使用類的好處: 1.繼承獲得一個類的屬性到其他類2.類型轉換使用戶能夠在運行時檢查類的類型3.初始化器需要處理釋放內存資源4.引用計數(shù)允許類實例有一個以上的參考 類和結構的共同特征: 1.屬性被定義為存儲值2.下標被定義為
2、提供訪問值3.方法被初始化來改善功能4.初始狀態(tài)是由初始化函數(shù)定義5.功能被擴大,超出默認值6.確認協(xié)議功能標準 語法復制代碼 代碼如下: Class classname Definition 1 Definition 2 - Definition N 定義類 復制代碼 代碼如下: class student var studname: String var mark: Int var mark2: Int 創(chuàng)建一個實例的語法: 復制代碼 代碼如下: let studrecord = student() 示例 class MarksStruct var mark: Int init(mark:
3、 Int) self.mark = mark class studentMarks var mark = 300 let marks = studentMarks() println("Mark is (marks.mark)") 當我們使用 playground 運行上面的程序,我們得到以下結果Mark is 300 訪問類屬性作為引用類型 類屬性可使用 '.' 語法來訪問。屬性名稱由 "." 分離在實例名后。 復制代碼 代碼如下: class MarksStruct var mark: Int init(mark: Int) self
4、.mark = mark class studentMarks var mark1 = 300 var mark2 = 400 var mark3 = 900 let marks = studentMarks() println("Mark1 is (marks.mark1)") println("Mark2 is (marks.mark2)") println("Mark3 is (marks.mark3)") 當我們使用 playground 運行上面的程序,得到以下結果Mark1 is 300Mark2 is 400Mark3
5、is 900 類標識符 在 Swift 引用多個常量和變量指向的單個實例。要了解常量和變量指向一個特定的類實例標識操作符的使用。 類實例總是通過引用傳遞。在類NSString,NSArray 和 NSDictionary 實例始終分配作為參考傳遞到現(xiàn)有的實例,而不是使用一個副本。復制代碼 代碼如下: class SampleClass: Equatable let myProperty: String init(s: String) myProperty = s func =(lhs: SampleClass, rhs: SampleClass) -> Bool return myPro
6、perty = rhs.myProperty let spClass1 = SampleClass(s: "Hello") let spClass2 = SampleClass(s: "Hello") spClass1 = spClass2 / false println("(spClass1)") spClass1 != spClass2 / true println("(spClass2)") 當我們使用 playground 運行上面的程序,得到以下結果12 main.SampleClassmain.Samp
7、leClass 結構體 Swift 提供了利用構造作為結構的靈活的構建塊。 通過利用這些結構的一次可以定義構建體的方法和屬性。 這不同于 C 和 Objective C 編程: 結構不用要求實現(xiàn)文件和接口。 結構體使我們能夠創(chuàng)建一個文件并自動擴展其接口到其它塊。 在結構體中的變量值被復制并傳遞在后續(xù)的代碼,通過返回的舊值的副本使得這些值不能被改變。 語法 復制代碼 代碼如下: Structures are defined with a 'Struct' Keyword. struct nameStruct Definition 1 Definition 2 - Definiti
8、on N 結構體的定義 考慮例如,假設要訪問包含三個科目記錄標記的學生并找出三個科目的總和。在這里,markStruct用于初始化的結構有三個標記,數(shù)據(jù)類型為 'Int'。 復制代碼 代碼如下: struct MarkStruct var mark1: Int var mark2: Int var mark3: Int 訪問結構體及屬性 結構的成員是由它的結構名訪問。 結構體的實例中由 'let' 關鍵字進行初始化。 復制代碼 代碼如下: struct studentMarks var mark1 = 100 var mark2 = 200 var mark3
9、= 300 let marks = studentMarks() println("Mark1 is (marks.mark1)") println("Mark2 is (marks.mark2)") println("Mark3 is (marks.mark3)") 當我們使用 playground 運行上面的程序,得到以下結果:123 Mark1 is 100Mark2 is 200Mark3 is 300 學生成績需要訪問結構名“studentMarks”。結構成員被初始化為 mark1, mark2, mark3 的整數(shù)類型值
10、。然后,結構體 studentMarks()傳遞給 'marks' 使用 'let' 關鍵字。 'marks' 將包含結構成員的值?,F(xiàn)在通過 '.' 訪問結構的初始名稱的值,并打印它。 復制代碼 代碼如下: struct MarksStruct var mark: Int init(mark: Int) self.mark = mark var aStruct = MarksStruct(mark: 98) var bStruct = aStruct / aStruct and bStruct are two structs wi
11、th the same value! bSmark = 97 println(aStruct.mark) / 98 println(bStruct.mark) / 97 當我們使用 playground 運行上面的程序,得到以下結果:9897 結構體最佳使用方式 Swift 語言提供功能來定義的結構體作為自定義數(shù)據(jù)類型,用于構建功能塊。 結構體的實例的值傳遞給定義塊來進一步的操作。 需要有結構: 封裝簡單的數(shù)據(jù)值 使用“值”而不是“引用”復制封裝數(shù)據(jù)到它的相關聯(lián)屬性 結構體為 “復制” 和 “引用” 在 swift 中結構體是通過其成員的值,而不是它的引用。 復制代碼 代碼如下: struct
12、 markStruct var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int) self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 var marks = markStruct(mark1: 98, mark2: 96, mark3:100) println(marks.mark1) println(marks.mark2) println(marks.mark3) 當我們使用 playground 運行上面的程序,得
13、到以下結果:123 9896100 另外一個實例 復制代碼 代碼如下: struct markStruct var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int) self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) println(fail.mark1) println(fail.mark2) println(fail.mark3) 當我們使用 playground 運行上面的程序,得到以下結果:344213 結構體 “markStruct” 需要它的成員首先定義:mark1, mark2 和 mark3. 現(xiàn)在,成員類的變量初始化容納整數(shù)值。之后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025朝花夕拾閱讀心得體會(20篇)
- 農(nóng)村紅利專項管理制度
- 試用期工作自我鑒定(30篇)
- 信息系統(tǒng)監(jiān)理師考試資源整合及試題答案分享
- 語文教師期末成績分析總結與反思(17篇)
- 數(shù)據(jù)庫錯誤日志分析方法試題及答案
- 員工食堂餐飲服務合同
- 鄉(xiāng)村農(nóng)業(yè)生態(tài)建設合同
- 計算機三級嵌入式技能考試試題及答案
- 理論結合實踐公路工程考試的有效復習法試題及答案
- PHPstorm激活碼2025年5月13日親測有效
- 2022年高考地理試卷(天津)(解析卷)
- 《ISO 37001-2025 反賄賂管理體系要求及使用指南》專業(yè)解讀和應用培訓指導材料之4:6策劃(雷澤佳編制-2025A0)
- T-CSTM 00290-2022 超高性能混凝土檢查井蓋
- 2025年2月21日四川省公務員面試真題及答案解析(行政執(zhí)法崗)
- 球團機械設備工程安裝及質量驗收標準
- 餐廳刀具使用管理制度
- 安全微課考試試題及答案
- 實施《保護世界文化與自然遺產(chǎn)公約》的操作指南
- 混凝土路面施工勞務合同
- 數(shù)字修約考試題及答案
評論
0/150
提交評論