Constraints let generic code require capabilities such as comparison.

Require comparable values

type_constraints.swift
func larger<T: Comparable>(_ left: T, _ right: T) -> T {
    return left >= right ? left : right
}

let leftScore = 
let rightScore = 18
let winner = larger(leftScore, rightScore)
let summary = "winner=\(winner)"

print(summary)
func larger<T: Comparable>(_ left: T, _ right: T) -> T {
    return left >= right ? left : right
}

let leftScore = 
let rightScore = 18
let winner = larger(leftScore, rightScore)
let summary = "winner=\(winner)"

print(summary)
func larger<T: Comparable>(_ left: T, _ right: T) -> T {
    return left >= right ? left : right
}

let leftScore = 
let rightScore = 18
let winner = larger(leftScore, rightScore)
let summary = "winner=\(winner)"

print(summary)
type constraint A constrained type parameter can use operations promised by the protocol constraint.