OverloadResolutionByLambdaReturnType所在位置是kotlin.OverloadResolutionByLambdaReturnType,其相关用法介绍如下。

用法:

@Target([AnnotationTarget.FUNCTION]) @ExperimentalTypeInference annotation class OverloadResolutionByLambdaReturnType

根据从 lambda 参数返回的值的类型启用重载选择。

当两个或多个函数重载具有相同的参数列表,但仅在函数参数的返回类型上有所不同时,此注释允许通过传递给此函数参数的 lambda 函数返回的值的类型来选择重载。

例子:

@OverloadResolutionByLambdaReturnType
fun create(intProducer: () -> Int): Int

fun create(doubleProducer: () -> Double): Double

val newValue = create { 3.14 }

应用于重载之一的注释允许通过分析从 lambda 函数返回的值来解决这种歧义。

该注释还用于区分带注释的重载,以防即使考虑到 lambda 参数分析的结果,重载选择仍然无法选择其中之一。在这种情况下,会报告警告。

注意:此注释是实验性的,请参阅ExperimentalTypeInference 了解如何选择加入它。