Kotlin 中的 min 和 minOf 有什么区别?

Ale*_*rak 7 syntax kotlin

在我的遗留代码中我有这个:

java.lang.Math.min(a, b)
Run Code Online (Sandbox Code Playgroud)

我想将其替换为 Kotlin 等效项,但我有点困惑应该使用哪一个。我找到了这两个:

kotlin.math.min(a,b)
kotlin.comparisons.minOf(a,b)
Run Code Online (Sandbox Code Playgroud)

正如我注意到的,他们两个都在内部调用Math.min. 他们之间有什么我想念的区别吗?其中之一是未来使用的首选吗?

Chr*_*anB 9

Kotlin kotlin.math.min(a,b)Int采用、DoubleFloat、等具体类型Long,并以数学方式比较它们。

Kotlin kotlin.comparisons 采用扩展接口的fun <T : Comparable<T>> minOf(a: T, b: T): T泛型类型。这可以在集合中使用,根据该类上Comparable的实现对它们进行排序。TComparable<T>

现在该用哪个?

如您所见,kotlin.comparisons.minOf(a,b)是比kotlin.math.min(a,b). 如果您使用数字类型,那么使用哪种类型并不重要,因为正如Math.min(a, b)您已经指出的那样,两者都是通过实现的。