목록 목록이 있고 데이터 (-, +, *, /)에 대한 수학 연산을 수행하려는 위치에서 작동하는 간단한 기능을 얻으려고합니다. 이 메소드가 다음 유형 (Int, Float, Double) 중 하나를 사용하기를 원합니다.스칼라 매개 변수화 된 메서드 및 산술 연산
표시 다음은def doSomething[T](data: List[T]){
data reduceLeft(_/_)
}
: 여기
내가 시도한 것입니다/형식 매개 변수의 T.의 멤버 값이 아닙니다 나는이합니다 (AnyVal 종류의 일을 어떻게합니까Double, Int, Float)?
def dot[T](l: List[List[T]])(implicit num: Numeric[T]) =
{
for (row <- data)
yield for(col <- l)
yield row zip col map {a => num.times(a._1 , a._2)} reduceLeft (_+_)
및 오류 얻을 :
업데이트 다음 코드의 제안을 구현하는 시도 유형 불일치를; 발견 : a._1.type (기본 유형 T) 필수 : T
이 문제를 해결할 수있는 방법이 있습니까? 부문
첫 번째'for'에서'data'은 무엇인가? – fehu
미안 데이터는 List [List [T]]입니다. –
이 작업을 수행하는 한 가지 방법은 매개 변수가있는 클래스 내에 포함시키는 것이 었습니다. 그러나, 나는 아직도 위가 작동하지 않는지 궁금합니다. 특히이 메서드를 Function 개체로 사용하려는 경우. –