代码之家  ›  专栏  ›  技术社区  ›  Johann

Kotlin中的泛型函数

  •  0
  • Johann  · 技术社区  · 7 年前

    在Kotlin中,您可以使用以下通用函数:

    fun <T> singletonList(item: T): List<T> {
        // ...
    }
    

    我不明白 <T> List<T> ,那么 <T>

    1 回复  |  直到 7 年前
        1
  •  4
  •   Mischa    7 年前

    为了能够创建泛型函数,编译器必须知道您想要使用不同的类型。Kotlin(与Java或C#)是一种强类型语言。因此,只需将不同类型传递到函数中,编译器就会疯掉。

    要告诉编译器一个函数应该接受多种类型,需要添加一个“类型参数”

    这个 <T> 之后 fun
    然后在 item 论点

    现在编译器知道您将指定 项目 singletonList(item: T)

    只是在做

    fun singletonList(item: T) : List<T> {[...]}
    

    T .
    (只要没有名为 )

    当用逗号分隔时,也可以有多个“类型参数”:

    fun <T, U> otherFunction(firstParam: T, secondParam: U): ReturnType
    
        2
  •  0
  •   s1m0nw1    7 年前

    根据语言的语法要求,这是一个通用函数,需要提供这一部分 <T> . 您可以使用它来指定 T

    fun <T: Number> singletonList(item: T): List<T> {
        // ...
    }
    

    fun <T: Number, R: Any> singletonList(item: T): R {
        // ...
    }