ClosuresClosure types are subject to the same switching patterns that any other types are:
switch someClosure { case let runnable as () -> Void: runnable() case let intConsumer as (value: Int) -> Void: intConsumer(4) case let stringConsumer as (value: String) -> Void: stringConsumer("A") }