Scala - выполнять операцию над двумя объектами, только если внутреннее поле равно - PullRequest
0 голосов
/ 01 июля 2018

Если у меня есть

Class Box[+T] {
   num: Int,
   t: T
}

И я хочу создать метод, который добавляет два блока вместе, но на самом деле он просто добавляет num и создает новый блок, как бы я это сделал, но при условии, что оба t равны? Я не хочу, чтобы просто тип был таким же, но внутренняя часть t была бы такой же

1 Ответ

0 голосов
/ 01 июля 2018

вы можете сделать следующее:

def add[T](box1: Box[T], box2: Box[T]): Option[Box[T]] = {
  if(box1.t == box2.t) Some(Box(box1.num + box2.num, box1.t))
  else None
}
...