반응형
Scala 제네릭 메서드-T에 사용할 수있는 ClassTag 없음
저는 Scala에 비교적 익숙하지 않고 일반 개체 메서드를 정의하려고합니다. 그러나 메소드 내에서 매개 변수화 된 유형을 참조하면 "T에 사용할 수있는 ClassTag 없음"이 표시됩니다. 다음은 문제를 설명하는 인위적인 예입니다.
scala> def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
<console>:7: error: No ClassTag available for T
def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
^
여기에서 무엇이 잘못되었는지 이해하고이 인위적인 예제를 작동시키는 방법에 대해 미리 감사드립니다.
일반 컨텍스트에서 배열을 인스턴스화하려면 ( T
여기서 T
유형 매개 변수 인 배열 인스턴스화 ) Scala는 런타임에에 대한 정보를 T
유형의 암시 적 값 형식으로 가져야 합니다 ClassTag[T]
. 구체적으로이 ClassTag
값 을 (암시 적으로) 전달하려면 메서드 호출자가 필요합니다 . 이는 컨텍스트 바인딩을 사용하여 편리하게 수행 할 수 있습니다 .
def foo[T:ClassTag](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
이 상황에 대한 (철저한) 설명은 다음 문서를 참조하십시오.
http://docs.scala-lang.org/sips/completed/scala-2-8-arrays.html
(짧게 말하면 ClassTags는 ClassManifests의 재 작업 된 구현이므로 근거는 남아 있습니다)
참고 URL : https://stackoverflow.com/questions/16921168/scala-generic-method-no-classtag-available-for-t
반응형
'IT박스' 카테고리의 다른 글
고정 된 비활성 msbuild.exe 프로세스, 잠긴 Stylecop.dll, Nuget AccessViolationException 및 CI 빌드가 서로 충돌하는 수수께끼 (0) | 2020.12.09 |
---|---|
삽입 모드로 들어 가지 않고 개행을 삽입하십시오. (0) | 2020.12.09 |
Scala 용 정적 분석 도구의 현재 상태는 무엇입니까? (0) | 2020.12.09 |
CSS만으로 사전에 줄 번호 만들기 (0) | 2020.12.09 |
C #에서 임의의 10 진수 생성 (0) | 2020.12.09 |