types - 有没有一种很好的方法可以在 Go 中模拟 "Maybe"或 "option"类型?

标签 types go nullable

我正在通过 chan X 发送对请求的回复,其中 X 是一个结构。该请求是一个搜索操作,所以理想情况下我希望能够返回一个 X,或者报告它没有找到。

这将是 Haskell 中的 Maybe X 或 OCaml 中的 x 选项 的任务。在 Go 中有什么体面的方法可以做到这一点吗?我没有返回一个指针(因为我返回的原始对象可能稍后会被修改),所以我不能只返回 nil

编辑: 现在我将其设为 chan interface{} 并发送 Xnil,但这很丑陋并且破坏了类型安全。

最佳答案

我使用指针类型,其中:

  • 可能是 X = *X
  • =
  • 只是 x = &x

关于types - 有没有一种很好的方法可以在 Go 中模拟 "Maybe"或 "option"类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993178/

相关文章:

c - 可移植(Linux 和 Windows moSTLy)4 字节提取/比较

scala - Scala 中嵌套数组的模式匹配

go - 尝试发出回显请求时收到无效的连接错误

vb.net - 从 DataRow 填充 Nullable 类型

sql - 如何在数据库中检查空标题?

types - Kotlin:从列表(或其他功能转换)中消除空值

基于 Scala 约束的类型和文字

sharepoint - 维基页面库上未触发内容类型的事件接收器

json - JSON解析异常

interface - 从未知类型创建指针