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

溫馨提示×

溫馨提示×

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

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

《從零開始學Swift》學習筆記(Day 38)——構造函數與存儲屬性初始化

發布時間:2020-03-11 17:14:41 來源:網絡 閱讀:608 作者:tony關東升 欄目:移動開發

原創文章,歡迎轉載。轉載請注明:關東升的博客 

構造函數的主要作用是初始化實例,其中包括:初始化存儲屬性和其它的初始化。在Rectangle類或結構體中,如果在構造函數中初始化存儲屬性widthheight后,那么在定義他們時就不需要初始化了。

Rectangle類代碼如下:

class Rectangle {
    var width: Double
    var height: Double
    
    init() {
        width  = 0.0
        height = 0.0
    }
}


如果存儲屬性在構造函數中沒有初始化,在定義的時候也沒有初始化,那么就會發生編譯錯誤。

構造函數還可以初始化常量存儲屬性,下面我們看示例代碼:

class Employee {         
    let no: Int               //常量類型屬性。曾講過常量只能在定義的同時賦值,而在構造函數中,常量屬性可以不遵守這個規則
    var name: String?     //存儲屬性一般在定義的時候初始化。如果不能確定初始值,可以采用可選類型屬性
    var job: String?      //存儲屬性
    var salary: Double        
    var dept: Department?//存儲屬性
    
    init() {              
        no = 0                 //在構造函數中賦值,這種賦值不能放在普通方法中
        salary = 0.0       
        dept = nil         
    }
}
 
struct Department {      
    let no: Int               //常量類型屬性
    var name: String     
 
    init() {              
        no = 10            //在構造函數中賦值,這種賦值不能放在普通方法中
        name = "SALES"     
    }
}
 
let dept = Department()
var emp = Employee()

 

使用外部參數名

為了增強程序的可讀性,Swift中的方法和函數可以使用外部參數名。在構造函數中也可以使用外部參數名。構造函數中的外部參數名要比一般的方法和函數更有意義,由于構造函數命名都是init,如果一個類型中有多個構造函數,我們可以通過不同的外部參數名區分調用不同的構造函數。

下面看示例代碼:

class RectangleA {
    var width: Double
    var height: Double
    
    init(W width: Double,H height: Double){  //定義構造函數有兩個參數width和height,并且為參數提供了外部參數名W和H。
        self.width   = width        //函數參數賦值給屬性
        self.height  = height  //
    }
}
 
var recta = RectangleA(W: 320, H: 480)       //創建RectangleA實例,這里使用了外部參數名
print("長方形A:\(recta.width) x \(recta.height)")


這里我們定義的是類,但也完全適用于結構體。

構造函數中的局部參數名可以直接作為外部參數名使用。

下面看示例代碼:

class RectangleB {
    var width: Double
    var height: Double
    
    init(width: Double, height: Double){//構造函數,其中沒有聲明外部參數名。
        self.width   = width
        self.height  = height
    }
}
 
var rectb =RectangleB(width: 320,height: 480) //代碼調用構造函數時,我們使用了外部參數名width和height,這些外部參數名就是局部參數名
print("長方形B:\(rectb.width) x\(rectb.height)")


 

歡迎關注關東升新浪微博@tony_關東升。
關注智捷課堂微信公共平臺,了解最新技術文章、圖書、教程信息
                              《從零開始學Swift》學習筆記(Day 38)——構造函數與存儲屬性初始化

更多精品iOSCocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php

 


向AI問一下細節

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

AI

梧州市| 衡南县| 乐昌市| 龙州县| 榕江县| 黑龙江省| 太仆寺旗| 凤台县| 阜新| 崇文区| 安化县| 嘉黎县| 神木县| 都兰县| 通榆县| 许昌县| 定襄县| 永平县| 吴桥县| 揭东县| 永嘉县| 邻水| 闻喜县| 潜江市| 芷江| 油尖旺区| 吐鲁番市| 大丰市| 嘉禾县| 凤庆县| 石景山区| 子洲县| 铁力市| 讷河市| 佳木斯市| 沧州市| 瑞丽市| 南康市| 额尔古纳市| 浦城县| 广灵县|