23:swift-泛型
正文
/* 泛型 1: 泛型代码让你能根据你所定义的要求写出可以用于任何类型的灵活的、可复用的函数。 2: 类型形式参数 占位符类型 T 就是一个类型形式参数的例子。 类型形式参数指定并且命名一个占位符类型,紧挨着写在函数名后面的一对尖括号里(比如 <T> )。\ func swapTwoValues<T>(_ a: inout T, _ b: inout T) { } */ import UIKit class Genericity23VC: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = .white self.title = "23:泛型" testType() } public func testType() { var stackOfStrings = Stack<String>() stackOfStrings.push("uno") stackOfStrings.push("dos") stackOfStrings.push("tres") stackOfStrings.push("cuatro") let a = stackOfStrings.pop(); print("泛型:pop:\(a)") } } // 1:声明一个泛型 struct Stack<Element> { var items = [Element]() mutating func push(_ item: Element) { items.append(item) } mutating func pop() -> Element { return items.removeLast() } } /*2:类型约束语法*/ func someFunction<T: Any, U: Equatable>(someT: T, someU: U) { }