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

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

Swift訪問(wèn)限定

        Swift語(yǔ)言可以實(shí)現(xiàn)封裝,由于在Swift中類、結(jié)構(gòu)體和枚舉類型都具有面向?qū)ο蟮奶匦裕虼薙wift的封裝就變得比較復(fù)雜了

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)建寧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一、訪問(wèn)范圍

        訪問(wèn)范圍主要有2個(gè):模塊和源文件

    1、關(guān)于模塊

            模塊是指一個(gè)應(yīng)用程序包成一個(gè)框架,在Swift中,可以使用import關(guān)鍵字引入模塊到自己的工程中

    應(yīng)用程序包指一個(gè)可執(zhí)行的應(yīng)用程序包,其內(nèi)部包含了很多swift文件以及其他一些文件,

    框架也是很多switf文件以及其他一些文件的集合,但與應(yīng)用程序包不同的是,它編譯的結(jié)果是不可執(zhí)行程序

2、源文件

        源文件指的是swift種的.swift文件,它編譯之后被包含在應(yīng)用程序包或框架中,通常一個(gè)源文件包含一個(gè)面向?qū)ο箢愋停?、結(jié)構(gòu)體和枚舉),在這些函數(shù)中包含函數(shù)、屬性等

二、訪問(wèn)級(jí)別

        Swift提供了3種不同的訪問(wèn)級(jí)別,有這些修飾符:public,private,internal,這些訪問(wèn)修飾符可以修飾類、結(jié)構(gòu)體、嵌套等面向?qū)ο箢愋?,還可以修飾:變量,常量、下標(biāo)、元組、函數(shù)、屬性等內(nèi)容

        1、public 可以訪問(wèn)自己類中的任何public實(shí)體,如果使用import引入其他模塊,可以訪問(wèn)其它模塊的public實(shí)體

        2、internal  只能訪問(wèn)自己模塊的internal實(shí)體,不能訪問(wèn)其他模塊的internal實(shí)體,internal可以省略,缺省訪問(wèn)限定是internal

        3、private 只能在當(dāng)前源文件中使用的實(shí)體,成為私有實(shí)體,使用private修飾符,可以用作隱藏某些功能的實(shí)現(xiàn)細(xì)節(jié)。

三、使用訪問(wèn)限制最佳實(shí)踐

        1、統(tǒng)一性原則

                (1)原則1:如果一個(gè)類型(類、結(jié)構(gòu)體和枚舉)定義為internal或private,那么類型聲明的變量或常量不能使用public訪問(wèn)級(jí)別,因?yàn)閜ublic的變量或常量允許任何人訪問(wèn),而private或internal的類型不允許

        private class Employee {
                var no:Int = 0
                var name:String = ""
                var job:String?
                var salary:Double
                var dept:Department?
}
        internal struct Department {
                var no: Int = 0
                var name:String =""
}
    public let emp = Employee() //編譯錯(cuò)誤
    public var dept = Department() //編譯錯(cuò)誤

    

            (2)原則2:函數(shù)的訪問(wèn)級(jí)別不能高于它的參數(shù)和返回類型的訪問(wèn)級(jí)別,假設(shè)函數(shù)聲明為public,而參數(shù)或返回值聲明為internal或private,則會(huì)出現(xiàn)函數(shù)可以被任何人訪問(wèn),但是它的參數(shù)和返回類型不可以的矛盾情況

        示例:

        class Employee {
                var no:Int = 0
                var name:String = ""
                var job:String?
                var salary:Double
                var dept:Department?
}
        struct Department {
                var no: Int = 0
                var name:String =""
}

        public func getEmpDept(emp:Employee)->Department? {
        
                    return emp.dept
        }

       上述代碼會(huì)發(fā)生編譯錯(cuò)誤,說(shuō)明了getEmpDept的函數(shù)的訪問(wèn)級(jí)別高于Employee類型的訪問(wèn)級(jí)別

        2、設(shè)計(jì)原則

            如果編寫的是應(yīng)用程序,應(yīng)用程序包中的所有Swift文件和其中定義的實(shí)體,都是給本應(yīng)用使用的,而不是提供給其他模塊使用,那么就不用設(shè)置訪問(wèn)級(jí)別,也就是默認(rèn)的訪問(wèn)級(jí)別。

            如果開(kāi)發(fā)的是框架,框架編譯的文件不能獨(dú)立運(yùn)行,因此它是給別人使用的,這種情況下我們就要詳細(xì)設(shè)計(jì)其中的swift文件和實(shí)體的訪問(wèn)級(jí)別,其中讓別人使用的設(shè)計(jì)為public,不想讓別人看到的可以設(shè)計(jì)為internal或private

        3、元組類型的訪問(wèn)級(jí)別

            元組類型的訪問(wèn)級(jí)別是遵循它元組中的字段最低級(jí)的訪問(wèn)級(jí)別,示例如下:

        

       private class Employee {
                var no:Int = 0
                var name:String = ""
                var job:String?
                var salary:Double
                var dept:Department?
}
        struct Department {
                var no: Int = 0
                var name:String =""
}

        public func getEmpDept(emp:Employee)->Department? {
        
                    return emp.dept
        }
        
        private let emp = Employee()
        var dept = Department()
        
        private var student1 = (dept,emp)

    

        4、枚舉類型的訪問(wèn)級(jí)別  

            枚舉中成員的訪問(wèn)級(jí)別繼承自該枚舉,我們不能為枚舉中的成員指定訪問(wèn)級(jí)別,如下所示

            public enum WeekDays{
                case Monday
                case Tuesday
                case Wednesday
                case  Thursday
                case  Friday
}

        WeekDays的訪問(wèn)級(jí)別是public,那么它的成員的訪問(wèn)級(jí)別也為public

            


本文標(biāo)題:Swift訪問(wèn)限定
路徑分享:http://weahome.cn/article/gedgpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部