//泛型函数funcswap2Int( a : inout Int, b : inout Int) {
let temp = a
a = b
b = temp
}
var a = 3var b = 5swap(&a, &b)
print("a is \(a), b is \(b)")
funcswap2String( a : inout String, b : inout String) {
let temp = a
a = b
b = temp
}
varc = "Hello"var d = "world"print("\(c) \(d)")
swap(&c, &d)
print("\(c) \(d)")
print("a is \(a), b is \(b)")
print("c is \(c), d is \(d)")
funcswap2Element<T>( a : inout T, b : inout T){
let temp = a
a = b
b = temp
}
swap2Element(a: &a, b: &b)
swap2Element(a: &c, b: &d)
print("a is \(a), b is \(b)")
print("c is \(c), d is \(d)")
//泛型类classCar{
var brand: Stringinit(brand: String) {
self.brand = brand
}
}
classBike{
var speed: Intinit(speed: Int) {
self.speed = speed
}
}
classDriver<Vehicle> {
var name: Stringvar vehicle: Vehicleinit(name: String, vehicle: Vehicle) {
self.name = name
self.vehicle = vehicle
}
}
let porscheCar = Car(brand: "Porsche")
let driverTom = Driver(name: "Tom", vehicle: porscheCar)
let giantBike = Bike(speed: 50)
let driverSam = Driver(name: "Sam", vehicle: giantBike)