Sto inviando una risposta a una richiesta su un chan X
, dove X
è una struttura. La richiesta è un'operazione di ricerca, quindi idealmente mi piacerebbe poter restituire uno X
o segnalare che non è stato trovato.C'è un bel modo per simulare un tipo "Forse" o "opzione" in Vai?
Questo sarebbe un compito per un Maybe X
in Haskell o un x option
in OCaml. C'è un modo decente per farlo in Go? Non sto restituendo un puntatore (dato che l'oggetto originale che sto restituendo potrebbe essere modificato in seguito), quindi non posso semplicemente restituire nil
.
Edit: in questo momento sto facendo un chan interface{}
e sia l'invio di un X
o nil
, ma questo è brutto e sconfigge tipo di sicurezza.
in https://github.com/alphazero/future.go ho optato per la tupla (interfaccia {}, bandiera) come il carico utile del canale. Abbastanza interessante, lo ha spinto ieri. – alphazero