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

溫馨提示×

溫馨提示×

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

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

03.Swift 結構體

發布時間:2020-06-24 23:51:03 來源:網絡 閱讀:431 作者:光光ing 欄目:移動開發

/*

結構體:

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

格式:

struct 結構體名稱 {

    結構體屬性和方法

}

*/



struct Rect {

    var width:Double = 0.0

    var height:Double = 0.0

}

// 如果結構體的屬性有默認值, 可以直接使用()構造一個結構體

// 如果結構體的屬性沒有默認值, 必須使用逐一構造器實例化結構體

var r = Rect()

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

// 結構體屬性的訪問使用.語法

r.width = 100

r.height = 99

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



/*

結構體構造器

Swift中的結構體和類跟其它面向對象語言一樣都有構造函數, OC是沒有的

Swift要求實例化一個結構體或類的時候,所有的成員變量都必須有初始值, 構造函數的意義就是用于初始化所有成員變量的, 而不是分配內存, 分配內存是系統幫我們做的.

如果結構體中的所有屬性都有默認值, 可以調用()構造一個結構體實例

如果結構體中的屬性沒有默認值, 可以自定義構造器, 并在構造器中給所有的屬性賦值

其實結構體有一個默認的逐一構造器, 用于在初始化時給所有屬性賦值

*/


struct Rect2 {

    var width:Double

    var height:Double = 0.0

}

// 逐一構造器

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

// 錯誤寫法, 順序必須和結構體中成員的順序一致

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

// 錯誤寫法, 必須包含所有成員

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



/*

結構體中定義成員方法

COC中結構體只有屬性, Swift中結構體中還可以定義方法

*/


struct Rect3 {

    var width:Double

    var height:Double = 0.0

    // 給結構體定義一個方法, 該方法屬于該結構體

    // 結構體中的成員方法必須使用某個實例調用

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

    func getWidth() -> Double{

        return width

    }

}


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

// 結構體中的成員方法是和某個實例對象綁定在一起的, 所以誰調用, 方法中訪問的屬性就屬于誰

print(r2.getWidth())


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

// 取得r2這個對象的寬度

print(r3.getWidth())


/*

結構體是值類型

*/


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.指向同一塊存儲空間

2.兩個不同實例, 但內容相同

*/

r4.show()

r5.show()

r4.width = 20.0

// 結構體是值類型, 結構體之間的賦值其實是將r1中的值完全拷貝一份到r2, 所以他們是兩個不同的實例

r4.show()

r5.show()


向AI問一下細節

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

AI

广平县| 塔河县| 湛江市| 弥渡县| 沁阳市| 佳木斯市| 沙湾县| 金沙县| 平顺县| 秦安县| 海口市| 邯郸市| 铜山县| 瑞金市| 孟州市| 四子王旗| 鄱阳县| 武穴市| 米脂县| 普洱| 苗栗县| 上蔡县| 无棣县| 岱山县| 古交市| 临清市| 深泽县| 虞城县| 禹州市| 文安县| 曲水县| 濉溪县| 湖南省| 马尔康县| 隆回县| 西林县| 新田县| 黑水县| 黄骅市| 松江区| 昌图县|