小编u2m*_*4c6的帖子

在 F# 中使用空列表还是“列表选项”更好?

在 F# 中的域模型中使用可能为空的列表时是否有最佳实践?例如,在一个待办事项应用程序中,一个任务可能有 0 到 N 个子任务。哪种建模方式是首选?

type Task :
    { Name : string
      SubTasks : Task list option }
Run Code Online (Sandbox Code Playgroud)

或者

type Task :
    { Name : string
      SubTasks : Task list } //potentially empty
Run Code Online (Sandbox Code Playgroud)

我是一个初学者,但在我看来,业务逻辑可以与任何一种实现一起使用。我会通过检查选项类型或检查长度 = 0 的列表长度来验证没有子任务。

如果我们将 的值添加ParentTask : Task option到任务记录类型中,也许最好也将子任务列表作为一个选项?

谢谢!

f#

1
推荐指数
1
解决办法
65
查看次数

标签 统计

f# ×1