package org.mariotaku.ktextension /** * Created by mariotaku on 2017/1/12. */ fun Array<*>?.isNotNullOrEmpty(): Boolean { return this != null && this.isNotEmpty() } fun Array<*>?.isNullOrEmpty(): Boolean { return this == null || this.isEmpty() } inline fun Array.toNulls(): Array { @Suppress("UNCHECKED_CAST") return this as Array } fun Array.toStringArray(): Array { return Array(size) { this[it].toString() } } inline fun Array.mapToArray(transform: (T) -> R): Array { return Array(size) { transform(this[it]) } } inline fun Array.mapToIntArray(transform: (T) -> Int): IntArray { return IntArray(size) { transform(this[it]) } } inline fun Array.mapIndexedToArray(transform: (Int, T) -> R): Array { return Array(size) { transform(it, this[it]) } } inline fun LongArray.mapToArray(transform: (Long) -> R): Array { return Array(size) { transform(this[it]) } } fun CharArray.indexOf(element: Char, start: Int, len: Int): Int { @Suppress("LoopToCallChain") for (i in rangeOfSize(start, len)) { if (this[i] == element) return i } return -1 } inline operator fun Array.minus(array: Array): Array { return this.filterNot { it in array }.toTypedArray() }