Skip to content

Instantly share code, notes, and snippets.

@an0
Last active February 28, 2016 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save an0/ca13caa46a9e0013e245 to your computer and use it in GitHub Desktop.
Save an0/ca13caa46a9e0013e245 to your computer and use it in GitHub Desktop.
// Source: https://twitter.com/AirspeedSwift/status/618546432954474497
prefix func !<T>(t: T?) -> T {
return t ?? Array<Int8>(count: sizeof(T), repeatedValue: 0).withUnsafeBufferPointer {
UnsafePointer($0.baseAddress).memory
}
}
prefix func !<T: ExtensibleCollectionType>(t: T?) -> T {
return t ?? T()
}
let i: Int = !nil
let s: String = !nil
let r: Range<Int> = !nil
let a: Array<Int> = !nil
!(!nil)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment