Twidere-App-Android-Twitter.../twidere/src/main/kotlin/org/mariotaku/ktextension/ArrayExtensions.kt

35 lines
867 B
Kotlin
Raw Normal View History

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-14 11:34:36 +02:00
fun <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]) }
}
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-14 09:05:51 +02:00
}