gpt4 book ai didi

scala - 为什么 reduceLeft 的类型参数包含下界?

转载 作者:行者123 更新时间:2023-12-04 06:05:53 25 4
gpt4 key购买 nike

reduceLeft的签名在一些 Seq[A]

def reduceLeft [B >: A] (f: (B, A) => B): B 
A的类型是已知的,但下限 >:告诉我们 B可以是 A 的任何父类(super class)型.

为什么会这样?为什么不
def reduceLeft (f: (A, A) => A): A

我们已经知道序列的头部是类型 A所以我想不出 B可以是不等于 A 的任何值.你能提供一个例子吗 B是不是有些超人?

最佳答案

假设您的 B 类有一个方法 combine(other:B): B .现在您调用reduceLeft((b,a) => b.combine(a))A 的列表中s。由于 combine 的返回类型是 B reduceLeft 的类型参数需要B .

关于scala - 为什么 reduceLeft 的类型参数包含下界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com