真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Swift的結(jié)構(gòu)體

Swift 結(jié)構(gòu)體是構(gòu)建代碼所用的一種通用且靈活的構(gòu)造體。

創(chuàng)新互聯(lián)專(zhuān)注于曲水企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站定制開(kāi)發(fā)。曲水網(wǎng)站建設(shè)公司,為曲水等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

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

與 C 和 Objective C 不同的是:

結(jié)構(gòu)體不需要包含實(shí)現(xiàn)文件和接口。

結(jié)構(gòu)體允許我們創(chuàng)建一個(gè)單一文件,且系統(tǒng)會(huì)自動(dòng)生成面向其它代碼的外部接口。

結(jié)構(gòu)體總是通過(guò)被復(fù)制的方式在代碼中傳遞,因此它的值是不可修改的。

語(yǔ)法

我們通過(guò)關(guān)鍵字 struct 來(lái)定義結(jié)構(gòu)體:

struct nameStruct {

   Definition 1

   Definition 2

   ……

   Definition N}

實(shí)例

我們定義一個(gè)名為 MarkStruct 的結(jié)構(gòu)體 ,結(jié)構(gòu)體的屬性為學(xué)生三個(gè)科目的分?jǐn)?shù),數(shù)據(jù)類(lèi)型為 Int:

struct MarkStruct{

   var mark1: Int

   var mark2: Int

   var mark3: Int

}

我們可以通過(guò)結(jié)構(gòu)體名來(lái)訪(fǎng)問(wèn)結(jié)構(gòu)體成員。

結(jié)構(gòu)體實(shí)例化使用 let 關(guān)鍵字:

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)")

以上程序執(zhí)行輸出結(jié)果為:

Mark1 是 100

Mark2 是 78

Mark3 是 98

實(shí)例中,我們通過(guò)結(jié)構(gòu)體名 'studentMarks' 訪(fǎng)問(wèn)學(xué)生的成績(jī)。結(jié)構(gòu)體成員初始化為mark1, mark2, mark3,數(shù)據(jù)類(lèi)型為整型。

然后我們通過(guò)使用 let 關(guān)鍵字將結(jié)構(gòu)體 studentMarks() 實(shí)例化并傳遞給 marks。

最后我們就通過(guò) . 號(hào)來(lái)訪(fǎng)問(wèn)結(jié)構(gòu)體成員的值。

以下實(shí)例化通過(guò)結(jié)構(gòu)體實(shí)例化時(shí)傳值并克隆一個(gè)結(jié)構(gòu)體:

import Cocoa

struct MarksStruct {

   var mark: Int

 

   init(mark: Int) {

                    self.mark = mark

      }

}

var aStruct = MarksStruct(mark: 98)

var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的結(jié)構(gòu)體!

bStruct.mark = 97

print(aStruct.mark) // 98

print(bStruct.mark) // 97

www.fzmajiang.com

以上程序執(zhí)行輸出結(jié)果為:

98

97

結(jié)構(gòu)體應(yīng)用

在你的代碼中,你可以使用結(jié)構(gòu)體來(lái)定義你的自定義數(shù)據(jù)類(lèi)型。

結(jié)構(gòu)體實(shí)例總是通過(guò)值傳遞來(lái)定義你的自定義數(shù)據(jù)類(lèi)型。

按照通用的準(zhǔn)則,當(dāng)符合一條或多條以下條件時(shí),請(qǐng)考慮構(gòu)建結(jié)構(gòu)體:

結(jié)構(gòu)體的主要目的是用來(lái)封裝少量相關(guān)簡(jiǎn)單數(shù)據(jù)值。

有理由預(yù)計(jì)一個(gè)結(jié)構(gòu)體實(shí)例在賦值或傳遞時(shí),封裝的數(shù)據(jù)將會(huì)被拷貝而不是被引用。

任何在結(jié)構(gòu)體中儲(chǔ)存的值類(lèi)型屬性,也將會(huì)被拷貝,而不是被引用。

結(jié)構(gòu)體不需要去繼承另一個(gè)已存在類(lèi)型的屬性或者行為。

舉例來(lái)說(shuō),以下情境中適合使用結(jié)構(gòu)體:

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

一定范圍內(nèi)的路徑,封裝一個(gè)start屬性和length屬性,兩者均為Int類(lèi)型。

三維坐標(biāo)系內(nèi)一點(diǎn),封裝x,y和z屬性,三者均為Double類(lèi)型。

結(jié)構(gòu)體實(shí)例是通過(guò)值傳遞而不是通過(guò)引用傳遞。

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("優(yōu)異成績(jī):")

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

print(marks.mark1)

print(marks.mark2)

print(marks.mark3)

print("糟糕成績(jī):")

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

print(fail.mark1)

print(fail.mark2)

print(fail.mark3)

以上程序執(zhí)行輸出結(jié)果為:

優(yōu)異成績(jī):

98

96

100

糟糕成績(jī):

34

42

13

www.tiqianzd.com

以上實(shí)例中我們定義了結(jié)構(gòu)體 markStruct,三個(gè)成員屬性:mark1, mark2 和 mark3。結(jié)構(gòu)體內(nèi)使用成員屬性使用 self 關(guān)鍵字。

從實(shí)例中我們可以很好的理解到結(jié)構(gòu)體實(shí)例是通過(guò)值傳遞的.


新聞名稱(chēng):Swift的結(jié)構(gòu)體
網(wǎng)站路徑:http://weahome.cn/article/geshsj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部