Scala案例类递归

Scala案例类递归,scala,playframework,case-class,Scala,Playframework,Case Class,我正在写一个递归函数 我们可以在同一案例类“a”中使用案例类“a”吗 例: 是的,这是有效的Scala,是定义递归数据结构的好方法 我建议删除儿童字段中的选项。您可以用空列表(Nil)表示“无子项”,因此可能不需要使用选项。是的,这是有效的Scala,是定义递归数据结构的好方法 我建议删除儿童字段中的选项。您可以用空列表(Nil)指示“无子项”因此,可能也不需要使用选项。当您尝试它时发生了什么?它工作正常,但我只是怀疑它可能有任何错误,或者可能是一种不好的做法。当您尝试它时发生了什么?它工作正常

我正在写一个递归函数

我们可以在同一案例类“a”中使用案例类“a”吗

例:


是的,这是有效的Scala,是定义递归数据结构的好方法


我建议删除
儿童
字段中的
选项
。您可以用空列表(
Nil
)表示“无子项”,因此可能不需要使用
选项。

是的,这是有效的Scala,是定义递归数据结构的好方法


我建议删除
儿童
字段中的
选项
。您可以用空列表(
Nil
)指示“无子项”因此,可能也不需要使用
选项。

当您尝试它时发生了什么?它工作正常,但我只是怀疑它可能有任何错误,或者可能是一种不好的做法。当您尝试它时发生了什么?它工作正常,但我只是怀疑它可能有任何错误,或者可能是一种不好的做法实践如果这一点是将其转换为JSON(我注意到playframework标记,这是play的一个非常常见的用例),那么该选项是相关的,否则任何没有该字段的JSON读取都会导致JSON到case类的转换失败。不过,我可能对用例的理解有误。:)@詹姆斯怀特利:好主意。我删除了playframework标签,因为我认为它不相关,但我已经把它放回原处,以防您对用例的看法是正确的。我只将它用于play framework。感谢您James和Tim:)如果这一点是要将其转换为JSON(我注意到playframework标记,这是play的一个非常常见的用例),那么该选项是相关的,否则任何没有该字段的JSON读取都会导致JSON到case类的转换失败。不过,我可能对用例的理解有误。:)@詹姆斯怀特利:好主意。我删除了playframework标签,因为我认为它不相关,但我已经把它放回原处,以防您对用例的看法是正确的。我只将它用于play framework。谢谢你,詹姆斯和蒂姆:)
case class FramesFolderData(key: String, title: String, parentId: Long, children: Option[List[FramesFolderData]])