欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

03.Swift結(jié)構(gòu)體

/*

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的高郵網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

結(jié)構(gòu)體:

結(jié)構(gòu)體是用于封裝不同或相同類型的數(shù)據(jù)的, Swift中的結(jié)構(gòu)體是一類類型,可以定義屬性和方法(甚至構(gòu)造方法和析構(gòu)方法等)

格式:

struct 結(jié)構(gòu)體名稱 {

   結(jié)構(gòu)體屬性和方法

}

*/

struct Rect {

    var width:Double = 0.0

    var height:Double = 0.0

}

//如果結(jié)構(gòu)體的屬性有默認(rèn)值,可以直接使用()構(gòu)造一個(gè)結(jié)構(gòu)體

//如果結(jié)構(gòu)體的屬性沒有默認(rèn)值,必須使用逐一構(gòu)造器實(shí)例化結(jié)構(gòu)體

var r = Rect()

print("width =\(r.width) height =\(r.height)")

//結(jié)構(gòu)體屬性的訪問使用.語法

r.width = 100

r.height = 99

print("width =\(r.width) height =\(r.height)")

/*

結(jié)構(gòu)體構(gòu)造器

Swift中的結(jié)構(gòu)體和類跟其它面向?qū)ο笳Z言一樣都有構(gòu)造函數(shù),而OC是沒有的

Swift要求實(shí)例化一個(gè)結(jié)構(gòu)體或類的時(shí)候,所有的成員變量都必須有初始值,構(gòu)造函數(shù)的意義就是用于初始化所有成員變量的,而不是分配內(nèi)存,分配內(nèi)存是系統(tǒng)幫我們做的.

如果結(jié)構(gòu)體中的所有屬性都有默認(rèn)值,可以調(diào)用()構(gòu)造一個(gè)結(jié)構(gòu)體實(shí)例

如果結(jié)構(gòu)體中的屬性沒有默認(rèn)值,可以自定義構(gòu)造器,并在構(gòu)造器中給所有的屬性賦值

其實(shí)結(jié)構(gòu)體有一個(gè)默認(rèn)的逐一構(gòu)造器,用于在初始化時(shí)給所有屬性賦值

*/

struct Rect2 {

    var width:Double

    var height:Double = 0.0

}

//逐一構(gòu)造器

var r1 = Rect2(width: 10.0, height: 10.0);

//錯(cuò)誤寫法,順序必須和結(jié)構(gòu)體中成員的順序一致

//var r1 = Rect2(height: 10.0, width: 10.0);

//錯(cuò)誤寫法,必須包含所有成員

//var r1 = Rect2(height: 10.0);

/*

結(jié)構(gòu)體中定義成員方法

在C和OC中結(jié)構(gòu)體只有屬性,而Swift中結(jié)構(gòu)體中還可以定義方法

*/

struct Rect3 {

    var width:Double

    var height:Double = 0.0

   //給結(jié)構(gòu)體定義一個(gè)方法,該方法屬于該結(jié)構(gòu)體

   //結(jié)構(gòu)體中的成員方法必須使用某個(gè)實(shí)例調(diào)用

   //成員方法可以訪問成員屬性

    func getWidth() -> Double{

        return width

    }

}

var r2 = Rect3(width: 10.0, height: 20.0)

//結(jié)構(gòu)體中的成員方法是和某個(gè)實(shí)例對(duì)象綁定在一起的,所以誰調(diào)用,方法中訪問的屬性就屬于誰

print(r2.getWidth())

var r3 = Rect3(width: 30.0, height: 20.0)

//取得r2這個(gè)對(duì)象的寬度

print(r3.getWidth())

/*

結(jié)構(gòu)體是值類型

*/

struct Rect4 {

    var width:Double

    var height:Double = 0.0

    func show() -> Void{

        print("width =\(width) height =\(height)")

    }

}

var r4 = Rect4(width: 10.0, height: 10.0)

var r5 = r4

/*

賦值有兩種情況

1.指向同一塊存儲(chǔ)空間

2.兩個(gè)不同實(shí)例,但內(nèi)容相同

*/

r4.show()

r5.show()

r4.width = 20.0

//結(jié)構(gòu)體是值類型,結(jié)構(gòu)體之間的賦值其實(shí)是將r1中的值完全拷貝一份到r2中,所以他們是兩個(gè)不同的實(shí)例

r4.show()

r5.show()

本文名稱:03.Swift結(jié)構(gòu)體
本文路徑:http://www.chinadenli.net/article4/gjoioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器搜索引擎優(yōu)化小程序開發(fā)品牌網(wǎng)站建設(shè)網(wǎng)站制作域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司