【发布时间】:2012-04-17 02:26:56
【问题描述】:
我正在通过chan X 发送对请求的回复,其中X 是一个结构。该请求是一个搜索操作,所以理想情况下我希望能够返回X,或者报告它没有找到。
这将是 Haskell 中的 Maybe X 或 OCaml 中的 x option 的任务。在 Go 中有什么体面的方法可以做到这一点吗?我没有返回一个指针(因为我返回的原始对象可能稍后会被修改),所以我不能只返回nil。
编辑:现在我将其设为chan interface{} 并发送X 或nil,但这很丑陋并且破坏了类型安全。
【问题讨论】:
-
在github.com/alphazero/future.go 中,我选择了元组 (interface{}, flag) 作为通道负载。有意思的是,昨天推送了。