Swift 2 学习笔记 17.扩展和泛型

2018-11-26  本文已影响0人  Maserati丶

课程来自慕课网liuyubobobo老师


扩展
class Rectangle{
    var width: Double = 0.0
    var height: Double = 0.0
    
    init(width: Double, height: Double) {
        self.width = width
        self.height = height
    }
}

extension Rectangle{
    func size() -> Double{
        return self.width * self.height
    }
    // 扩展中只能添加计算属性
    // 扩展中只能添加方便构造函数
}

let rect = Rectangle(width: 3, height: 2)
rect.size()  // 6
extension Int {
    var square: Int {
        return self*self
    }
}

let num = 6
num.square  // 36
func swapTowNum<T>(_ num1: inout T, _ num2: inout T) {
    (num1,num2) = (num2,num1)
}

var a = 1.0
var b = 2.0
swapTowNum(&a, &b)
struct Stack<T> {
    var items = [T]()
    
    func isEmpty() -> Bool {
        return items.count == 0
    }
    
    mutating func push(_ item: T) {
        items.append(item)
    }

    mutating func pop() -> T? {
        guard !self.isEmpty() else {
            return nil
        }
        return items.removeLast()
    }
}

var s = Stack<Int>()
s.push(1)
s.pop()
上一篇 下一篇

猜你喜欢

热点阅读