Scala 将特定成员变量设置为空
Scala Setting Specific Member Variables to Null
我有一个 class 类似于以下内容:
class Cat(
val whiskers: Vector[Whiskers],
val tail: hasTail,
val ears: hasEars)
我还有一个函数可以根据文件的内容初始化这些值:
val whiskers = initWhiskers()
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = initEars())
我的问题是:在某些情况下,存在没有尾巴或耳朵的猫。我如何通过允许我的一些猫 objects 没有耳朵而其他猫有耳朵来解释这种情况?
澄清一下:
val cat = new Cat(whiskers = whiskers, tail = null, ears = null)
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = null)
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = initEars())
我希望以上三种可能性都成为选项。这完全取决于我正在解析的文件是否有耳朵或尾巴等
我尝试过的:
将值设置为空(非常不成功)。
使所有成员变量成为选项(这似乎是 long-winded 再次获取空值的方法)。
还有其他选项吗?
谢谢!
在 Scala 中,我们使用 Option monad 来包装可以为 null 的东西。
class Cat(
val whiskers: Vector[Whiskers],
val tail: Option[hasTail],
val ears: Option[hasEars]
)
val cat1 = new Cat(whiskers = whiskers, tail = None, ears = None)
val cat2 = new Cat(whiskers = whiskers, tail = Option(initTail()), ears = Option(initEars() )
我有一个 class 类似于以下内容:
class Cat(
val whiskers: Vector[Whiskers],
val tail: hasTail,
val ears: hasEars)
我还有一个函数可以根据文件的内容初始化这些值:
val whiskers = initWhiskers()
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = initEars())
我的问题是:在某些情况下,存在没有尾巴或耳朵的猫。我如何通过允许我的一些猫 objects 没有耳朵而其他猫有耳朵来解释这种情况?
澄清一下:
val cat = new Cat(whiskers = whiskers, tail = null, ears = null)
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = null)
val cat = new Cat(whiskers = whiskers, tail = initTail(), ears = initEars())
我希望以上三种可能性都成为选项。这完全取决于我正在解析的文件是否有耳朵或尾巴等
我尝试过的:
将值设置为空(非常不成功)。 使所有成员变量成为选项(这似乎是 long-winded 再次获取空值的方法)。
还有其他选项吗?
谢谢!
在 Scala 中,我们使用 Option monad 来包装可以为 null 的东西。
class Cat(
val whiskers: Vector[Whiskers],
val tail: Option[hasTail],
val ears: Option[hasEars]
)
val cat1 = new Cat(whiskers = whiskers, tail = None, ears = None)
val cat2 = new Cat(whiskers = whiskers, tail = Option(initTail()), ears = Option(initEars() )