gpt4 book ai didi

Scala 泛型函数混淆

转载 作者:行者123 更新时间:2023-12-01 09:35:14 25 4
gpt4 key购买 nike

我遇到以下情况:

有一个方法 def f(lst: List[Any]),它对列表进行一些转换并返回该转换的结果(所有那些 Any 的是案例类)。我需要完成的是,当输入列表为空时,生成一个列表,其中包含一个正确类型的元素并对其进行转换。

是否可以在类型级别上保证某些案例类具有无参数构造函数?如果是这样,应该用什么替换 Any?如果不是,那么实现这一目标的最佳方法是什么?也许我应该将我的方法更改为 def f[T](lst: List[T], default: T)?

任何帮助表示赞赏。

最佳答案

你在寻找这样的东西吗?

import scalaz._
import Scalaz._

scala> def f[A : Zero](lst: List[A]) = {
| val xs = if(lst.isEmpty) List(mzero[A]) else lst
| xs ++ xs // some transformation
| }
f: [A](lst: List[A])(implicit evidence$1: scalaz.Zero[A])List[A]

scala> f(List.empty[Int])
res1: List[Int] = List(0, 0)

scala> f(List("hello", "world"))
res2: List[java.lang.String] = List(hello, world, hello, world)

如果是,可以引用this post我前段时间写过这个主题。

关于Scala 泛型函数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279689/

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