14-Swift之访问控制&泛型

1、Swift 中访问控制的关键字

public (公共) / internal / private(私有)

2、各个控制关键字的意义

1、public 的意义

公共类、方法和属性可供App 中的任意部分访问

2、internal 的意义

内部数据只能在定义这些数据的模块内部访问。模块是一个应用程序、库或框架。internal是默认的访问控制级别,即如果不指定访问控制级别,那就认为是internal

3、private 的意义

私有数据只能供声明它的文件访问

4、注意

注意:被定义为private的类是一个例外,如果没有为一个成员声明访问控制级别,它会被定为 private ,而不是 internal

3、访问控制关键字的举例

1、简单例子
class  Car {
    public var priceValue:Int?
    internal var weight:Int?
    private var height:Int?
}
2、private 定义属性为只读属性
class  Car {
    public var priceValue:Int?
    internal var weight:Int?
    private var height:Int?
    /**
     我们可以将一个属性的setter 声明为私有的,从而使这个属性是只读的。
     */
    private(set) var price:Int = 1000
}
3、举例使用
/* 创建一个Car对象*/
let MyCar = Car()
MyCar.priceValue = 12000
MyCar.weight = 1200
let value = MyCar.price
print(value)
/* Car 的height 的对象无法被调用 */

4、泛型

1、什么是泛型

泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。

2、泛型的定义?

1.在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
2.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。

3、泛型的举例
/* 泛型的举例*/
class NetWork <T> {
    /*定义一个泛型的变量*/
    var Kvalue :T?
    /* 便捷初始化*/
    convenience init(value:T){
        self.init()
        self.Kvalue = value
    }
    
    /* 添加一个数*/
    func addNumber(value:T) -> NetWork<T> {
        let NewNetWork  = NetWork<T>(value:value)
        return NewNetWork
    }
}
5、泛型的使用
/* 整数型*/
let interTree = NetWork<Int>(value:100)
let interTree1 =  interTree.addNumber(value: 200)
print(interTree1.Kvalue!)

/* 字符串 */
let stringTree = NetWork<String>(value:"xiao")
let stringTree1 = stringTree.addNumber(value: "NetWork小贱")
print(stringTree1.Kvalue!)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容