aimozg
02/11/2017, 12:03 AMclass ArrayBuilder {
@Suppress("UNCHECKED_CAST")
operator inline fun<reified T> get(vararg items:T):Array<T> = items as Array<T>
}
val array = ArrayBuilder()
fun darkMagic() {
array[1,2,3]
}aimozg
02/11/2017, 12:06 AM= arrayOf(*items) to = items)aimozg
02/11/2017, 12:11 AM:Array<out T> = items to :Array<T> = items as Array<T> with @Suppress)aimozg
02/11/2017, 12:27 AMGETSTATIC array : LArrayBuilder; :
class ArrayBuilder private constructor() {
}
@Suppress("UNCHECKED_CAST")
operator inline fun<reified T> ArrayBuilder?.get(vararg items:T):Array<T> = items as Array<T>
inline val array:ArrayBuilder? get() = null
fun darkMagic() {
val a: Array<out Int> = array[1,2,3]
val b = arrayOf(1,2,3)
}aimozg
02/11/2017, 12:50 AMnull[1,2,3] possibleaimozg
02/11/2017, 12:54 AMinline operator fun<reified T> Array.Companion.get(vararg items:T): Array<T> = items as Array<T>
val a = Array["1", "2", "3"]