Scalacheck 라이브러리를 사용하여 응용 프로그램을 테스트하고 있습니다. 이 라이브러리에는 어떤 객체와 그 클래스의 객체 생성자에 대한 암시 적 변환을 정의하는 Gen
객체가 있습니다. 이 예에서 implicits의 이상한 동작
scala> import org.scalacheck.Gen._
import org.scalacheck.Gen._
scala> "foo" sample
res1: Option[java.lang.String] = Some(foo)
는 암시
Gen.value()
가
"foo"
에 적용, 즉 항상 발전기를 산출 :
예는, Gen._
수입하면 Gen
로의 암시 적 변환을 통해, 모든 객체에 같은 sample
등의 메소드를 호출 할 수 있습니다 Some(foo)
을 반환합니다.
하지만이 작동하지 않습니다
scala> import org.scalacheck.Gen.value
import org.scalacheck.Gen.value
scala> "foo" sample
<console>:5: error: value sample is not a member of java.lang.String
"foo" sample
^
을 왜? 내가 스칼라 2.7.7final 및 ScalaCheck 2.7.7-1.6을 사용하고
업데이트
.
업데이트
그냥 ScalaCheck 2.8.0-1.7와 스칼라 2.8.0.final로 전환. 문제는 실제로 사라졌습니다.
저는 Scala 2.7.7final과 ScalaCheck 2.7.7-1.6을 사용하고 있습니다. 이 버전의 버그입니까? 업그레이드해야합니까? – lindelof
2.7.7 제한 일 수 있지만 2.8로 업그레이드하는 것은 큰 단계이므로 준비가되었을 때만 수행하십시오. –
@lindelof : 2.7은 막 다른 길이며 유지 관리되지 않습니다. 2.8 ASAP로 업그레이드하는 것이 좋습니다. 생각만큼 큰 일은 아닙니다. –