Marcin Wisniowski
12/01/2018, 11:43 PMShawn
12/01/2018, 11:45 PMimplies
predicate be closer to objects is Array<Any>
Shawn
12/01/2018, 11:46 PMMarcin Wisniowski
12/01/2018, 11:46 PMMarcin Wisniowski
12/01/2018, 11:47 PMShawn
12/01/2018, 11:47 PMShawn
12/01/2018, 11:48 PMShawn
12/01/2018, 11:49 PMvararg objects
is really just a bunch of syntax sugar for variadics that results in getting an Array<T>
passed in without having to make callers write function(arrayOf(...))
Shawn
12/01/2018, 11:51 PMnotNull()
function with can now be safely smart-casted to non-null typesMarcin Wisniowski
12/01/2018, 11:51 PMif
statement?Marcin Wisniowski
12/01/2018, 11:53 PMnotNull()
function without the contract, and just using !!
inside which is guaranteed to be safe, but still doesn't feel right.Shawn
12/01/2018, 11:54 PMMarcin Wisniowski
12/01/2018, 11:54 PMShawn
12/01/2018, 11:56 PMShawn
12/01/2018, 11:57 PMinline fun <A, B, C, R> where(a: A?, b: B?, c: C?, block: (A, B, C) -> R?): R? = if (
a != null &&
b != null &&
c != null
) block(a, b, c) else null
Shawn
12/01/2018, 11:59 PMfun frobnicate(i: Int?, s: String?, c: Char?) {
where(i, s, c) { int, string, char ->
println(int.toString() + string + char)
}
}
Marcin Wisniowski
12/02/2018, 12:00 AMShawn
12/02/2018, 12:00 AMShawn
12/02/2018, 12:00 AMkarelpeeters
12/02/2018, 12:57 AM