gpt4 book ai didi

Scala 要么 : simplest way to get a property that exists on right and left

转载 作者:行者123 更新时间:2023-12-04 22:43:27 26 4
gpt4 key购买 nike

我有一个使用 valueObject 的模板,它可能是两种风格之一,具体取决于它在我们的应用程序中的使用位置。所以我将它作为一个导入它:

valueObject: Either[ ObjectA, ObjectB ]

两个对象都有一个同名的属性,所以我想通过调用来检索它
valueObject.propertyA

这是行不通的。

这样做的最简洁/最好的方法是什么?

最佳答案

假设两个对象具有定义该属性的相同类型(或父类(super class)型/特征) - 您可以使用 merge如果存在则返回左,否则返回右,两者的通用类型最低:

scala> class MyClass {
| def propertyA = 1
| }
defined class MyClass

scala> val e1: Either[MyClass, MyClass] = Left(new MyClass)
e1: Either[MyClass,MyClass] = Left(MyClass@1e51abf)

scala> val e2: Either[MyClass, MyClass] = Right(new MyClass)
e2: Either[MyClass,MyClass] = Right(MyClass@b4c6d0)

scala> e1.merge.propertyA
res0: Int = 1

scala> e2.merge.propertyA
res1: Int = 1

关于Scala 要么 : simplest way to get a property that exists on right and left,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38222460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com