2017-01-12 17:26:44 +01:00
|
|
|
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()
|
|
|
|
}
|
|
|
|
|
2017-04-24 06:48:47 +02:00
|
|
|
inline fun <reified T> Array<T>.toNulls(): Array<T?> {
|
2017-02-10 16:38:59 +01:00
|
|
|
@Suppress("UNCHECKED_CAST")
|
|
|
|
return this as Array<T?>
|
2017-02-10 19:01:31 +01:00
|
|
|
}
|
|
|
|
|
2017-04-14 11:34:36 +02:00
|
|
|
fun <T> Array<T>.toStringArray(): Array<String> {
|
2017-02-10 19:01:31 +01:00
|
|
|
return Array(size) { this[it].toString() }
|
|
|
|
}
|
2017-04-14 09:05:51 +02:00
|
|
|
|
2017-04-14 11:34:36 +02:00
|
|
|
inline fun <T, reified R> Array<T>.mapToArray(transform: (T) -> R): Array<R> {
|
|
|
|
return Array(size) { transform(this[it]) }
|
|
|
|
}
|
|
|
|
|
2017-04-19 21:31:07 +02:00
|
|
|
inline fun <T, reified R> Array<T>.mapIndexedToArray(transform: (Int, T) -> R): Array<R> {
|
|
|
|
return Array(size) { transform(it, this[it]) }
|
|
|
|
}
|
|
|
|
|
2017-04-14 11:34:36 +02:00
|
|
|
inline fun <reified R> LongArray.mapToArray(transform: (Long) -> R): Array<R> {
|
|
|
|
return Array(size) { transform(this[it]) }
|
2017-04-26 17:38:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|
2017-04-14 09:05:51 +02:00
|
|
|
}
|