Option [String] = None和Scala中Option [String]之间的差异

问题描述 投票:0回答:1

我已经开始学习scala,并在项目中遍历了代码(案例类和其他内容)。

我看到一个这样定义的案例类

case class Test(firstName: Option[String] = None, lastName: Option[String])

我对上述案例类有几个问题

  1. [Option [String] = None和Option [String]之间有什么区别
  2. 正确的用法是什么,何时应使用Option [String] = None和Option [String]

有人可以解释

scala case-class
1个回答
1
投票
参数的

<类似于以下内容:name: type (= defaultValue)-请注意,默认值部分为可选

因此firstName: Option[String] = None表示参数名为

firstName,其类型为Option [String],其默认值为None (也请记住使用了Option类型来解释一个值可能存在或不存在。None表示它不存在)

根据上下文两者都是正确的,在这种情况下,可以像这样使用此类:

Test(lastName = None) // res: Test = Test(None,None) - A person without names. Test(lastName = Some("Mejia")) // res: Test = Test(None,Some(Mejia)) - A person with just its last name, which it is "Mejia". Test(firstName = Some("Luis"), lastName = Some("Mejia")) // res: Test = Test(Some(Luis),Some(Mejia)) - A person whose first name is "Luis" and its last name is "Mejia". Test(firstName = Some("Luis"), lastName = None) // res: Test = Test(Some(Luis),None) - A person with just its first name, which it is "Luis".

请注意,由于没有默认值,我总是必须指定其姓氏。
© www.soinside.com 2019 - 2024. All rights reserved.