如何将隐式参数传递给隐式 class
How to pass implicit parameter to implicit class
我想将隐式参数传递给我的拉皮条类型,就像我在实际类型中所做的那样。但是由于 implicit 类 只接受一个参数,我没有办法将参数隐式传递给我的新类型。
package com.abc.xyz
class Pet(val petName: String){
override def toString = petName
}
class PetLover(val name: String)(implicit val pet: Pet) {
def showLove = s"${name} shows love, ${pet} waves tail"
}
我正在尝试将 PetLover 拉进 PetTrainer 并添加一个新方法训练:
package com.abc
import com.abc.xyz.PetLover
package object mno {
implicit class PetTrainer(val trainer: PetLover) extends AnyVal{
def train = s"${trainer.name} show hand," //${pet} high fives"
}
}
我该怎么做才能让 PetTrainer 隐式使用 Pet?
该值已通过 trainer.pet
可用:
def train = s"${trainer.name} shows hand, ${trainer.pet} high fives"
如果不是这种情况,您可以将隐式参数添加到 train
:
def train(implicit pet: Pet) = s"${trainer.name} shows hand, ${pet} high fives"
我想将隐式参数传递给我的拉皮条类型,就像我在实际类型中所做的那样。但是由于 implicit 类 只接受一个参数,我没有办法将参数隐式传递给我的新类型。
package com.abc.xyz
class Pet(val petName: String){
override def toString = petName
}
class PetLover(val name: String)(implicit val pet: Pet) {
def showLove = s"${name} shows love, ${pet} waves tail"
}
我正在尝试将 PetLover 拉进 PetTrainer 并添加一个新方法训练:
package com.abc
import com.abc.xyz.PetLover
package object mno {
implicit class PetTrainer(val trainer: PetLover) extends AnyVal{
def train = s"${trainer.name} show hand," //${pet} high fives"
}
}
我该怎么做才能让 PetTrainer 隐式使用 Pet?
该值已通过 trainer.pet
可用:
def train = s"${trainer.name} shows hand, ${trainer.pet} high fives"
如果不是这种情况,您可以将隐式参数添加到 train
:
def train(implicit pet: Pet) = s"${trainer.name} shows hand, ${pet} high fives"