Spec-Zone.ru › Kotlin 1.6

compareValuesBy

kotlin-stdlib / kotlin.comparisons / compareValuesBy
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
fun <T> compareValuesBy(
    a: T, 
    b: T, 
    vararg selectors: (T) -> Comparable<*>?
): Int

Сравнивает два значения, используя указанные функции selectors для вычисления результата сравнения. Функции вызываются последовательно, получают заданные значения a и b и возвращают объекты Comparable. Как только объекты Comparable, возвращенные функцией для значений a и b, не сравниваются как равные, возвращается результат этого сравнения.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
fun compareLengthThenString(a: String, b: String): Int =
    compareValuesBy(a, b, { it.length }, { it })

println("compareLengthThenString("b", "aa") < 0 is ${compareLengthThenString("b", "aa") < 0}") // true

println("compareLengthThenString("a", "b") < 0 is ${compareLengthThenString("a", "b") < 0}") // true
println("compareLengthThenString("b", "a") > 0 is ${compareLengthThenString("b", "a") > 0}") // true
println("compareLengthThenString("a", "a") == 0 is ${compareLengthThenString("a", "a") == 0}") // true
//sampleEnd
}
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T> compareValuesBy(
    a: T, 
    b: T, 
    selector: (T) -> Comparable<*>?
): Int

Сравнивает два значения, используя указанную a и b и возвращает объекты Comparable. Возвращается результат сравнения этих объектов .

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
fun compareLength(a: String, b: String): Int =
    compareValuesBy(a, b) { it.length }

println("compareLength("a", "b") == 0 is ${compareLength("a", "b") == 0}") // true
println("compareLength("bb", "a") > 0 is ${compareLength("bb", "a") > 0}") // true
println("compareLength("a", "bb") < 0 is ${compareLength("a", "bb") < 0}") // true
//sampleEnd
}
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T, K> compareValuesBy(
    a: T, 
    b: T, 
    comparator: Comparator<in K>, 
    selector: (T) -> K
): Int

Сравнивает два значения, используя указанную a и b и возвращает объекты типа K, которые затем сравниваются с заданным компаратором.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
fun compareInsensitiveOrder(a: Char, b: Char): Int =
    compareValuesBy(a, b, String.CASE_INSENSITIVE_ORDER, { c -> c.toString() })

println("compareInsensitiveOrder('a', 'a') == 0 is ${compareInsensitiveOrder('a', 'a') == 0}") // true
println("compareInsensitiveOrder('a', 'A') == 0 is ${compareInsensitiveOrder('a', 'A') == 0}") // true

println("compareInsensitiveOrder('a', 'b') < 0 is ${compareInsensitiveOrder('a', 'b') < 0}") // true
println("compareInsensitiveOrder('A', 'b') < 0 is ${compareInsensitiveOrder('A', 'b') < 0}") // true
println("compareInsensitiveOrder('b', 'a') > 0 is ${compareInsensitiveOrder('b', 'a') > 0}") // true
//sampleEnd
}

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.comparisons/compare-values-by.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API