Page 229



var tos = TOS<String>() tos.push("Swift") println(tos.items)

tos.push("Generics") println(tos.items)

tos.push("Type Parameters") println(tos.items)

tos.push("Naming Type Parameters") println(tos.items)

extension TOS { var first: T? { return items.isEmpty ? nil : items[items.count - 1] } }

if let first = tos.first { println("The top item on the stack is \(first).") } When we run the above program using playground, we get the following result: [Swift] [Swift, Generics] [Swift, Generics, Type Parameters] [Swift, Generics, Type Parameters, Naming Type Parameters] The top item on the stack is Naming Type Parameters.

Type Constraints Swift language allows 'type constraints' to specify whether the type parameter inherits from a specific class, or to ensure protocol conformance standard. 217

​Swift is just a effective and user-friendly programming language for macOS, iOS, watchOS and ...