亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Swift語言中的類與結構體

 更新時間:2015年11月04日 17:18:01   投稿:goldensun  
這篇文章主要介紹了Swift語言中的類與結構體,是Swift入門學習中的基礎知識,需要的朋友可以參考下


在 Swift 中類是建立靈活的構建塊。類似于常量,變量和函數(shù),用戶可以定義的類的屬性和方法。Swift給我們提供了聲明類,而無需用戶創(chuàng)建接口和實現(xiàn)文件的功能。Swift 允許我們創(chuàng)建類作為單個文件和外部接口,將默認在類一次初始化來創(chuàng)建。

使用類的好處:

  • 繼承獲得一個類的屬性到其他類
  • 類型轉換使用戶能夠在運行時檢查類的類型
  • 初始化器需要處理釋放內存資源
  • 引用計數(shù)允許類實例有一個以上的參考

類和結構的共同特征:

  • 屬性被定義為存儲值
  • 下標被定義為提供訪問值
  • 方法被初始化來改善功能
  • 初始狀態(tài)是由初始化函數(shù)定義
  • 功能被擴大,超出默認值
  • 確認協(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: 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.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 300
Mark2 is 400
Mark3 is 900

類標識符
在 Swift 引用多個常量和變量指向的單個實例。要了解常量和變量指向一個特定的類實例標識操作符的使用。 類實例總是通過引用傳遞。在類NSString,NSArray 和 NSDictionary 實例始終分配作為參考傳遞到現(xiàn)有的實例,而不是使用一個副本。

2015114171530231.png (639×119)

復制代碼 代碼如下:

class SampleClass: Equatable {
   let myProperty: String
   init(s: String) {
      myProperty = s
   }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
   return lhs.myProperty == rhs.myProperty
}

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

spClass1 === spClass2 // false
println("\(spClass1)")

spClass1 !== spClass2 // true
println("\(spClass2)")


當我們使用 playground 運行上面的程序,得到以下結果

main.SampleClass
main.SampleClass

結構體
Swift 提供了利用構造作為結構的靈活的構建塊。 通過利用這些結構的一次可以定義構建體的方法和屬性。

這不同于 C 和 Objective C 編程:

結構不用要求實現(xiàn)文件和接口。

結構體使我們能夠創(chuàng)建一個文件并自動擴展其接口到其它塊。

在結構體中的變量值被復制并傳遞在后續(xù)的代碼,通過返回的舊值的副本使得這些值不能被改變。

語法

復制代碼 代碼如下:

Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
    ---
   Definition 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 = 300
}
let marks = studentMarks()
println("Mark1 is \(marks.mark1)")
println("Mark2 is \(marks.mark2)")
println("Mark3 is \(marks.mark3)")

當我們使用 playground 運行上面的程序,得到以下結果:

Mark1 is 100
Mark2 is 200
Mark3 is 300

學生成績需要訪問結構名“studentMarks”。結構成員被初始化為 mark1, mark2, mark3 的整數(shù)類型值。然后,結構體 studentMarks()傳遞給 'marks' 使用 'let' 關鍵字。 'marks' 將包含結構成員的值。現(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 with the same value!
bStruct.mark = 97
println(aStruct.mark) // 98
println(bStruct.mark) // 97


當我們使用 playground 運行上面的程序,得到以下結果:

98
97

結構體最佳使用方式
Swift 語言提供功能來定義的結構體作為自定義數(shù)據(jù)類型,用于構建功能塊。 結構體的實例的值傳遞給定義塊來進一步的操作。

需要有結構:

封裝簡單的數(shù)據(jù)值

使用“值”而不是“引用”復制封裝數(shù)據(jù)到它的相關聯(lián)屬性

結構體為 “復制” 和 “引用”

在 swift 中結構體是通過其成員的值,而不是它的引用。

復制代碼 代碼如下:

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 marks = markStruct(mark1: 98, mark2: 96, mark3:100)
println(marks.mark1)
println(marks.mark2)
println(marks.mark3)


當我們使用 playground 運行上面的程序,得到以下結果:

98
96
100

另外一個實例

復制代碼 代碼如下:

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 運行上面的程序,得到以下結果:

34
42
13

結構體 “markStruct” 需要它的成員首先定義:mark1, mark2 和 mark3. 現(xiàn)在,成員類的變量初始化容納整數(shù)值。之后結構成員的副本使用 “self” 關鍵字創(chuàng)建。當結構成員的副本創(chuàng)建結構體塊,其參數(shù)標記傳遞給 'marks' 變量,它現(xiàn)在將保存學生的分數(shù)。那么標記打印為 98, 96, 100。 下一步對于相同的結構成員的另一個實例命名為 'fail' 用于指向不同的標記相同結構體的成員。那么標記現(xiàn)在打印為 34, 42, 13. 這清楚地說明了結構會有成員變量的副本,傳入成員到它們即將推出的功能塊。

相關文章

  • 使用swift實現(xiàn)計算器功能

    使用swift實現(xiàn)計算器功能

    這篇文章主要為大家詳細介紹了使用swift實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 解析Swift中的泛型支持與使用

    解析Swift中的泛型支持與使用

    支持泛型意味著可以在規(guī)定參數(shù)類型的情況下更靈活地編寫程序,也是Swift語言先進而又強大的體現(xiàn),這里我們就來解析Swift中的泛型支持與使用:
    2016-07-07
  • Swift5中fileprivate與private的差別淺析

    Swift5中fileprivate與private的差別淺析

    這篇文章主要給大家介紹了關于Swift5中fileprivate與private的差別的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Swift5具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • iOS Swift讀取本地json文件報錯的解決方法

    iOS Swift讀取本地json文件報錯的解決方法

    只要是app開發(fā)者都知道,從服務器端獲得的數(shù)據(jù)要不就是json格式的數(shù)據(jù),要么就是xml格式的數(shù)據(jù),而這篇文章主要給大家介紹了關于iOS Swift讀取本地json文件報錯的解決方法,需要的朋友可以參考借鑒,下面來一起學習學習吧。
    2017-11-11
  • Swift中初始化方法的順序介紹

    Swift中初始化方法的順序介紹

    這篇文章主要介紹了Swift中初始化方法的順序介紹,本文介紹的是了類的初始化方法,需要的朋友可以參考下
    2015-01-01
  • SwiftUI 登錄界面布局實現(xiàn)示例詳解

    SwiftUI 登錄界面布局實現(xiàn)示例詳解

    這篇文章主要為大家介紹了SwiftUI 登錄界面布局實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Swift中的HTTP模擬測試示例詳解

    Swift中的HTTP模擬測試示例詳解

    這篇文章主要為大家介紹了Swift中的HTTP模擬測試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Swift實現(xiàn)復數(shù)計算器

    Swift實現(xiàn)復數(shù)計算器

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)復數(shù)計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift和C語言混合編程教程

    Swift和C語言混合編程教程

    這篇文章主要介紹了Swift和C語言混合編程教程,介紹基本數(shù)據(jù)類型對比、指針、常量等內容,需要的朋友可以參考下
    2014-07-07
  • Swift TableView實現(xiàn)凍結窗格功能

    Swift TableView實現(xiàn)凍結窗格功能

    這篇文章主要為大家詳細介紹了Swift TableView實現(xiàn)凍結窗格功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論