IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> extension(扩展)使用详情 -> 正文阅读

[移动开发]extension(扩展)使用详情

1.extension(扩展)

扩展为现有的类,结构体,枚举类型,或协议添加了新功能.这也包括了为无访问权限的源代码扩展类型的能力(即所谓的逆向建模)

扩展和OC的中category类似.(与OC的分类不同的是,Swift的扩展没有名字)

2.extension的能力

1.添加计算实例属性和计算类型属性

2.定义实例方法和类型方法

3.提供新初始化器

4.定义下标

5.定义和使用新内嵌类型

6.使现有的类型遵循某协议

7.扩展可以向一个类型添加新的方法,但是不能重写已有的方法

扩展可以向自己已有的类型添加计算实例属性和计算类型属性

extension Double {
    
    var km:Double {return self * 1000.0 }
    
    var m:Double = {return self }
    
    var cm:Double = {return self / 100.0}

}

3.初始化器

扩展可向已有的类型添加新的初始化器.这允许你扩展其他类型以使初始化接收你的自定义类型作为形式参数,或提供该类型的原始实现中未包含的额外初始化选项.

扩展能为类添加新的便捷初始化器,但是不能为类添加指定初始化器或反初始化器.指定初始化器和反初始化器必须由原来类的实现提供.

struct Size {
    
    var width = 0.0, height = 0.0
    
}
struct Point {
    
    var x = 0.0, y = 0.0
}
struct Rect {
    
    var origin = Point()
    var size = Size()
    
}
extension Rect
{
    init(center: Point , size:Size) {
        
        let originX = center.x - (size.width / 2)
    
        let originY = center.y - (size.height / 2)
        
        self.init(origin: Point(x: originX, y: originY), size: size)
        
        
    }
}

4.mutating方法

        var someIn = 30
        someIn.square()
extension Int
{
  mutating  func square()  {
        
        self = self * self
    }
}

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:51:34  更:2022-05-13 11:52:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:25:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码