2014-07-08 2 views
2

저는 스칼라 2.10.2에 몇 가지 값 클래스를 생성하여 전기 단위를 나타 냈습니다. 전압, 전류, 전력, 에너지 등이 있습니다. 이들은 특정의 합리적인 방법으로 만 결합 할 수 있습니다. 당신은 전류로 전압을 곱할 수 있지만 에너지로 전압을 곱할 수는 없습니다.커스텀 클래스의 수치 스칼라

일반적인 사용 사례는 일련의 에너지에 대해 총 에너지를 계산하고 있습니다. 이를 위해, 나는

val energies : Seq[Energy] = ... 
energies.sum() 

을 사용하고 싶습니다 그러나 그것은 나에게 다음과 같은 오류를 제공합니다 : 완벽한 의미가

error: could not find implicit value for parameter num: Numeric[Energy] 

합니다.

Numeric [Energy]를 구현할 수는 있지만 올바른 형식이 아니기 때문에 원하지 않는 times(Energy, Energy)을 정의해야합니다. 누구든지 이것이 성취 될 수있는 방법에 대한 제안을 가지고 있습니까?

+0

가능한 [List.sum 사용자 지정 클래스] (http://stackoverflow.com/questions/21787505/list-sum-on-custom-class) – igx

답변

1

합계가 Numeric[T]이고 Numeric[Energy]을 허용 할 수 없으므로 sum을 사용할 수 없습니다. 어쩌면 유형 컬렉션에 대해 자주 수행하려는 작업에 대해 고유 한 헬퍼 함수 세트를 도입 할 수 있습니까?

이드는 스커트를보고 그들이 그 문제를 해결했는지 여부를 확인합니다. (http://www.squants.com)

+1

이제 README에 기록되어 있습니다. 예 , import'squants.mass.MassConversions.MassNumeric' : https://github.com/typelevel/squants#numeric-support – bbarker

관련 문제