-1
에서 나는 다음과 같은 한 코드 :볼품 : 암시 적 함수 본문
val reprEncoder: CsvEncoder[String :: Int :: Boolean :: HNil] =
implicitly
implicitly
여기에 무엇을 의미합니까?
에서 나는 다음과 같은 한 코드 :볼품 : 암시 적 함수 본문
val reprEncoder: CsvEncoder[String :: Int :: Boolean :: HNil] =
implicitly
implicitly
여기에 무엇을 의미합니까?
의미 : "CsvEncoder[String :: Int :: Boolean :: HNil]
유형의 범위에있는 암시 적 인스턴스 소환"을 의미합니다. 다음의 간단한 예제는 스칼라 REPL 세션에서 분명히해야한다 : 당신이 anotherStr
에 할당 된 값을 볼 수 있듯이
$ scala
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144).
Type in expressions for evaluation. Or try :help.
scala> implicit val str: String = "hello"
str: String = hello
scala> val anotherStr: String = implicitly
anotherStr: String = hello
는 str
의 범위를 입력 String
의 유일한 암시 적 가치 인 것입니다. 범위에서 동일한 유형의 암시 적 값이 두 개 이상 있으면 컴파일이 실패하여 "모호한 암시 적 값"오류가 발생합니다. 실제로 :
scala> implicit val str: String = "hello"
str: String = hello
scala> implicit val str2: String = "world"
str2: String = world
scala> val anotherStr: String = implicitly
<console>:16: error: ambiguous implicit values:
both value StringCanBuildFrom in object Predef of type =>
scala.collection.generic.CanBuildFrom[String,Char,String]
and method $conforms in object Predef of type [A]=> A <:< A
match expected type T
val anotherStr: String = implicitly
^
scala>
묻기 전에 문서를 작성하십시오. – cchantep
본 적이 있지만 구성 할 수 없습니다. 왜냐하면 내가 여기서 물어 봤기 때문이야. –
여기에 '암시 적으로'정의되어 있습니다. https://github.com/scala/scala/blob/2.12.x/src/library/scala/Predef.scala#L187 –