Scala - Implicit conversion to implicit argument -


i have class a defines implicit conversion b.

case class a(number:int)  case class b(number:int, tag:string) implicit def  atob(a:a) = b(a.number,"hello world") 

i have function retrieves a , invoke function takes argument implicit b:

def hello()(implicit b:b)= {....} def execute = {     implicit val a:a  = ....     hello()  //doesnt compile missing implicit parameter b } 

how can code work without explicitly defining b? i.e

val b:b = 

define function this:

implicit def implicitbfroma(implicit a: a): b = 

and either have in scope when call hello, or put companion object of b.

this function not implicit conversion. states, there implicit value of type b available, if there implicit value of type a available in scope.

note work, should either defined after atob in file, or atob should have explicitly specified return type: implicit def atob(a:a): b = b(a.number, "hello world"), or should explicitly call atob in body: implicit def implicitbfroma(implicit a: a): b = atob(a)

a full working example:

case class a(number: int)  case class b(number: int, tag: string) object b {   implicit def implicitb(implicit a: a): b = }  implicit def atob(a:a): b = b(a.number, "hello world")  def hello()(implicit b: b) = b.number.tostring + b.tag  def execute = {   implicit val a: = a(10)   hello() } 

Comments

Popular posts from this blog

java - Suppress Jboss version details from HTTP error response -

gridview - Yii2 DataPorivider $totalSum for a column -

Sass watch command compiles .scss files before full sftp upload -