gpt4 book ai didi

scala - 在方法中使用类型参数实现特征

转载 作者:行者123 更新时间:2023-12-01 12:28:07 26 4
gpt4 key购买 nike

我对 Scala 中的泛型有疑问。我有两个类(class)

import scala.reflect.ClassTag

class Data[T: ClassTag](val list: List[T]) {

}

trait Transformation {
def transform[T, U](data: Data[T]) : Data[U]
}

现在我想实现一个从 Int 到 String 的类,像这样

class FromInt2String extends Transformation {
override def transform[String, Int](data: Data[String]) = ???
}

但我知道这是一模一样

class FromInt2String extends Transformation {
override def transform[T, U](data: Data[T]) = ???
}

如果不在转换中添加类型参数,我该如何做到这一点?

谢谢

最佳答案

How can I do this without adding type parameters in the Transformation?

如果不需要泛型类型参数,可以使用Abstract Types :

trait Transformation {
type T
type U

def transform(data: Data[T]) : Data[U]
}

class FromInt2String extends Transformation {
override type T = String
override type U = Int

override def transform(data: Data[String]): Data[Int] = ???
}

关于scala - 在方法中使用类型参数实现特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570159/

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