我正在通过 chan X
发送对请求的回复,其中 X
是一个结构。该请求是一个搜索操作,所以理想情况下我希望能够返回一个 X
,或者报告它没有找到。
这将是 Haskell 中的 Maybe X
或 OCaml 中的 x 选项
的任务。在 Go 中有什么体面的方法可以做到这一点吗?我没有返回一个指针(因为我返回的原始对象可能稍后会被修改),所以我不能只返回 nil
。
编辑: 现在我将其设为 chan interface{}
并发送 X
或 nil
,但这很丑陋并且破坏了类型安全。
最佳答案
我使用指针类型,其中:
可能是 X
=*X
无
=无
只是 x
=&x
关于types - 有没有一种很好的方法可以在 Go 中模拟 "Maybe"或 "option"类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993178/