本文是记录一下对swift extension的使用
首先extension即扩展类
用于扩展类功能,以适应不同人使用该类的时候不同需求
作为一个扩展,不能为类增加存储型属性,但是可以增加计算属性(通过类其他属性计算出来的值) 。
扩展也可以为类增加功能函数
extension people{
func eat(food:Int) {
self.weight += food
} }
注意:当然当你为结构体要增加扩展函数的时候,而且这个函数需要改变某些结构体自带属性(重新赋值),需要在方法名字面前加上mutating,说明这个函数是用于赋值作用的。 因为结构体是值类型的,赋值他需要创建一个新的副本,而它不知道这个新的副本放在那里,加上mutating后他就会把这个副本覆盖到要set的地方
extension people{
mutating func eat(food:Int) {
self.weight += food
}
}
一般扩展是使用在扩展系统类功能,封装函数,使我们快速达到需求
下面我扩展Int类的功能
让他帮我实现以下功能
- 使用.toString获得整数的字符串类型
- 使用.toBinaryString获得整数的二进制字符串类型
- 使用.toCube获得整数的三次方
- 使用下标获得整数的某个位的数 1234[1] ->2
import UIKit
//在OC中叫做分类
//扩展系统类函数 让其使用更加方便
extension Int{
//获得该整数的字符串
var toString : String{
r