nkiesel
02/07/2017, 7:56 PMmiha-x64
02/07/2017, 7:59 PMArrays.toString(arrayOf(intArrayOf(0)))
will look ugly...orangy
fun pretty(a: Any) : String = when (a) {
is IntArray -> a.joinToString { pretty(it) }
is DoubleArray -> a.joinToString { pretty(it) }
else -> a.toString()
}
nkiesel
02/07/2017, 8:03 PMorangy
nkiesel
02/07/2017, 8:04 PMnkiesel
02/07/2017, 8:29 PMAny?
, adding []
and enumerating all types from stdlib
fun pretty(a: Any?): String = when (a) {
is Array<*> -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is ByteArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is ShortArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is IntArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is LongArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is FloatArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is DoubleArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is BooleanArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is CharArray -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
is Iterable<*> -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
else -> a.toString()
}
orangy
jakiej
02/08/2017, 6:24 AMa::class.java.isArray
?nkiesel
02/08/2017, 6:36 AMjoinToString
are extension functions. Thus, they do need the correct static type in order to workmiha-x64
02/08/2017, 7:33 AMgetComponentType()
simple smilejakiej
02/08/2017, 8:25 AMnkiesel
02/08/2017, 7:26 PMfun pretty(a: Any?): String = when (a) {
is Array<*>,
is ByteArray,
is ShortArray,
is IntArray ->,
is LongArray,
is FloatArray,
is DoubleArray,
is BooleanArray,
is CharArray,
is Iterable<*> -> a.joinToString(prefix = "[", postfix = "]") { pretty(it) }
else -> a.toString()
}
Is that correct?orangy
a
would be Any
, and you can’t call joinToString
on itnkiesel
02/08/2017, 11:04 PM