Created
January 17, 2018 20:00
-
-
Save thomasnield/3707006f4da8fc8edb487e70458f87f6 to your computer and use it in GitHub Desktop.
Kotlin Tuples
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Try to use explicit data classes, but if you want to quickly create tuples these will help | |
| */ | |
| data class Tuple2<out A, out B>(val a: A, val b: B) | |
| data class Tuple3<out A, out B, out C>(val a: A, val b: B, val c: C) | |
| data class Tuple4<out A, out B, out C, out D>(val a: A, val b: B, val c: C, val d: D) | |
| data class Tuple5<out A, out B, out C, out D, out E>(val a: A, val b: B, val c: C, val d: D, val e: E) | |
| data class Tuple6<out A, out B, out C, out D, out E, out F>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F) | |
| data class Tuple7<out A, out B, out C, out D, out E, out F, out G>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F, val g: G) | |
| data class Tuple8<out A, out B, out C, out D, out E, out F, out G, out H>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F, val g: G, val h: H) | |
| data class Tuple9<out A, out B, out C, out D, out E, out F, out G, out H, out I>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F, val g: G, val h: H, val i: I) | |
| data class Tuple10<out A, out B, out C, out D, out E, out F, out G, out H, out I, out J>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F, val g: G, val h: H, val i: I, val j: J) | |
| data class Tuple11<out A, out B, out C, out D, out E, out F, out G, out H, out I, out J, out K>(val a: A, val b: B, val c: C, val d: D, val e: E, val f: F, val g: G, val h: H, val i: I, val j: J, val k: K) | |
| fun <A,B> t(a: A, b: B) = Tuple2(a,b) | |
| fun <A,B,C> t(a: A, b: B, c: C) = Tuple3(a,b,c) | |
| fun <A,B,C,D> t(a: A, b: B, c: C, d: D) = Tuple4(a,b,c,d) | |
| fun <A,B,C,D,E> t(a: A, b: B, c: C, d: D, e: E) = Tuple5(a,b,c,d,e) | |
| fun <A,B,C,D,E,F> t(a: A, b: B, c: C, d: D, e: E, f: F) = Tuple6(a,b,c,d,e,f) | |
| fun <A,B,C,D,E,F,G> t(a: A, b: B, c: C, d: D, e: E, f: F, g: G) = Tuple7(a,b,c,d,e,f,g) | |
| fun <A,B,C,D,E,F,G,H> t(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) = Tuple8(a,b,c,d,e,f,g,h) | |
| fun <A,B,C,D,E,F,G,H,I> t(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) = Tuple9(a,b,c,d,e,f,g,h,i) | |
| fun <A,B,C,D,E,F,G,H,I,J> t(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) = Tuple10(a,b,c,d,e,f,g,h,i,j) | |
| fun <A,B,C,D,E,F,G,H,I,J,K> t(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K) = Tuple11(a,b,c,d,e,f,g,h,i,j,k) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment