Я следую учебному пособию в школе Scala, и у меня возникла проблема. В разделе для неявных представлений в расширенных типах here указано, что методы могут запрашивать определенные типы доказательств для типа.Неявный параметр вида
В нем перечислены три из этих видов доказательств -
A =:= B A must be equal to B
A <:< B A must be a subtype of B
A <%< B A must be viewable as B
Однако код я пишу синтаксическую ошибку, когда я пытаюсь третий вид.
Это мой код
class ContainerTwo[A](value : A) {
// A must be a subtype of Int
def addIt(implicit evidence : A <:< Int) = 123 + value
// A must be a viewable as a String
def printIt(implicit evidence : A <%< String) = println(evidence) // This line reports an error at <%< - "Cannot resolve symbol <%<"
// A must be a subtype of a String
def doSomethingWithAString(implicit evidence : A <:< String) = println(evidence)
}
Я использую Scala 2.10. Я не уверен, что я делаю что-то неправильно, учебник ошибочен, или если Scala изменилась с момента написания учебника.
Пожалуйста, всегда указывайте * актуальную * ошибку, не просто кратко описывайте ее как «сообщает о синтаксической ошибке». –