일부 매개 변수화 된 클래스 C [T]를 만들고 클래스 T의 매개 변수가 될 수 있도록 T 유형의 특성에 대한 몇 가지 요구 사항을 만들고 싶습니다. T가 특성이나 클래스에서 상속 받았다고 (주문과 마찬가지로) 말하고 싶으면 간단 할 것입니다. 그러나 나는 그것도 몇 가지 기능을 구현 싶어요.스칼라 : 일반 클래스의 형식 매개 변수에 대한 요구 사항을 만드는 방법?
예를 들어 많은 미리 정의 된 유형이 MinValue 및 MaxValue를 구현한다는 것을 보았습니다. 이러한 유형을 구현하기 위해 T 유형을 사용하고 싶습니다. 암시 적 함수를 정의하기위한 조언을 받았습니다. 그러나 이미 구현 된 경우 모든 사용자가이 기능을 구현해야한다는 점을 싫어합니다. 나는 그것들을 내 코드에서도 구현할 수 있지만, 단지 빈약 한 빠른 수정 인 것처럼 보인다.
예를 들어 힙을 정의 할 때 사용자가 빈 힙을 생성 할 수있게하고 싶습니다. 이러한 경우 나는 유형 T가 가질 수있는 최소값으로 가치를 정하고 싶습니다. 분명히이 코드는 작동하지 않습니다.
class Heap[T](val value:T,val heaps:List[Heap[T]]){
def this()=this(T.MinValue,List())
}
또한 온라인 스칼라 2.8 참조에 대한 조언도 받고 싶습니다.
: 유형 클래스에
롤 ...
UPDATE는
[T : HasMinMax]
표기는 바운드 상황이며, 대한 문법 설탕입니다 (의사) 코드 예제로 당신이 무엇을했는지 명확히 해주십시오. 무엇을 시도 했습니까? 왜 작동하지 않았습니까? –Scala 리소스에 대한 많은 링크는 http://stackoverflow.com/questions/68074/good-way-to-learn-scala를 참조하십시오. –
유형 경계에 대해 읽어보십시오. 코드 예는 다음과 같습니다. https://gist.github.com/257758/47f06f2f3ca47702b3a86c76a5479d096cb8c7ec –