7 ms·
Yep, futures can be done easily in Go with a goroutine that sends a single value on a channel, but: 1) you can't dereference the value multiple times in Go, so
by cerales 13y ago
Yep, futures can be done easily in Go with a goroutine that sends a single value on a channel, but: 1) you can't dereference the value multiple times in Go, so you have to manage saving it yourself, and 2) there's no syntactic sugar. Pity.
- hornetblack 13y agoYou could save the future in the Future implementation type future struct { completed bool result interface{} ch <-chan interface{} } Edit: Or just check if the channel is closed func (f *future) Wait() interface{} { v, ok := <- ch if ok { f.result = v; return v } else { return f.result } }