91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swift 的 結構體

發布時間:2020-07-14 04:57:19 來源:網絡 閱讀:1251 作者:調皮妹子呀 欄目:移動開發

Swift 結構體是構建代碼所用的一種通用且靈活的構造體。

我們可以為結構體定義屬性(常量、變量)和添加方法,從而擴展結構體的功能。

 C 和 Objective C 不同的是:

結構體不需要包含實現文件和接口。

結構體允許我們創建一個單一文件,且系統會自動生成面向其它代碼的外部接口。

結構體總是通過被復制的方式在代碼中傳遞,因此它的值是不可修改的。


語法

我們通過關鍵字 struct 來定義結構體:

struct nameStruct {

   Definition 1

   Definition 2

   ……

   Definition N}


實例

我們定義一個名為 MarkStruct 的結構體 ,結構體的屬性為學生三個科目的分數,數據類型為 Int:


struct MarkStruct{

   var mark1: Int

   var mark2: Int

   var mark3: Int

}


我們可以通過結構體名來訪問結構體成員。

結構體實例化使用 let 關鍵字:


import Cocoa


struct studentMarks {

   var mark1 = 100

   var mark2 = 78

   var mark3 = 98

}

let marks = studentMarks()

print("Mark1 是 \(marks.mark1)")

print("Mark2 是 \(marks.mark2)")

print("Mark3 是 \(marks.mark3)")


以上程序執行輸出結果為:


Mark1 是 100

Mark2 是 78

Mark3 是 98


實例中,我們通過結構體名 'studentMarks' 訪問學生的成績。結構體成員初始化為mark1, mark2, mark3,數據類型為整型。

然后我們通過使用 let 關鍵字將結構體 studentMarks() 實例化并傳遞給 marks。

最后我們就通過 . 號來訪問結構體成員的值。

以下實例化通過結構體實例化時傳值并克隆一個結構體:


import Cocoa


struct MarksStruct {


   var mark: Int

 

   init(mark: Int) {


                    self.mark = mark

      }

}

var aStruct = MarksStruct(mark: 98)

var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的結構體!

bStruct.mark = 97

print(aStruct.mark) // 98

print(bStruct.mark) // 97

www.fzmajiang.com

以上程序執行輸出結果為:


98

97


結構體應用

在你的代碼中,你可以使用結構體來定義你的自定義數據類型。

結構體實例總是通過值傳遞來定義你的自定義數據類型。

按照通用的準則,當符合一條或多條以下條件時,請考慮構建結構體:

結構體的主要目的是用來封裝少量相關簡單數據值。

有理由預計一個結構體實例在賦值或傳遞時,封裝的數據將會被拷貝而不是被引用。

任何在結構體中儲存的值類型屬性,也將會被拷貝,而不是被引用。

結構體不需要去繼承另一個已存在類型的屬性或者行為。


舉例來說,以下情境中適合使用結構體:

幾何形狀的大小,封裝一個width屬性和height屬性,兩者均為Double類型。

一定范圍內的路徑,封裝一個start屬性和length屬性,兩者均為Int類型。

三維坐標系內一點,封裝x,y和z屬性,三者均為Double類型。

結構體實例是通過值傳遞而不是通過引用傳遞。


import Cocoa

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

      }

}

print("優異成績:")

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)

print(marks.mark1)

print(marks.mark2)

print(marks.mark3)


print("糟糕成績:")

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)

print(fail.mark2)

print(fail.mark3)


以上程序執行輸出結果為:

優異成績:

98

96

100


糟糕成績:

34

42

13

www.tiqianzd.com

以上實例中我們定義了結構體 markStruct,三個成員屬性:mark1, mark2 和 mark3。結構體內使用成員屬性使用 self 關鍵字。

從實例中我們可以很好的理解到結構體實例是通過值傳遞的.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽阳县| 留坝县| 兰州市| 南康市| 建德市| 金塔县| 通榆县| 武安市| 红安县| 积石山| 沙河市| 新丰县| 桃园市| 霍州市| 饶河县| 炎陵县| 申扎县| 江口县| 北辰区| 浦东新区| 板桥市| 收藏| 武乡县| 徐州市| 淮北市| 赤城县| 定日县| 乐至县| 许昌市| 阳曲县| 曲水县| 廊坊市| 衡东县| 称多县| 勃利县| 察哈| 龙游县| 兴文县| 遵化市| 集安市| 临武县|