diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt index 7533cad2..15bb5a77 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt @@ -86,6 +86,22 @@ internal inline fun Array.value() = if (isNotEmpty()) { "[${value.trim().let { it.substring(0, it.lastIndex) }}]" } else "[]" +/** + * 满足条件判断方法体 - 对 [kotlin.takeIf] 进行封装 + * @param other 需要满足不为空的对象 - 仅用于判断是否为 null + * @param predicate 原始方法体 + * @return [T] or null + */ +internal inline fun T.takeIf(other: Any?, predicate: (T) -> Boolean) = if (other != null) takeIf(predicate) else null + +/** + * 满足条件返回值 - 对 [kotlin.let] 进行封装 + * @param other 需要满足不为空的对象 - 仅用于判断是否为 null + * @param block 原始方法体 + * @return [R] or null + */ +internal inline fun T.let(other: Any?, block: (T) -> R) = if (other != null) let(block) else null + /** * 计算方法执行耗时 * @param block 方法块