Thanks Liam, your suggested placement would make it somehow impossible (or at least I cannot see it right now) to use with someExpression?.someMember If I am not mistaken, yours is close to the currently proposed "try", just replacing it with ?, am I right on that ?
A. On Monday, July 1, 2019 at 2:49:09 AM UTC-6, Liam wrote: > > I've noted in several places that a 'try' expression (via keyword, > built-in, or symbol) is suitable only when the function is expected to > always succeed, and so would panic on error. > > Also the symbol, which I agree is preferable, works best this way > will?(always?(work?())) vs will(always(work()?)?)? > > On Saturday, June 29, 2019 at 4:05:44 PM UTC-7, Michael Jones wrote: >> >> My personal thought, though it may seem strange, is that the best >> argument for it lies in the single word sentence at the bottom of your >> email. You write "Thoughts?" -- and that is very expressive in English in >> just the way that you mean above in your examples. I don't know enough >> other languages to really know if the parallels are universal, but it's >> pretty clear to me what it means why "file?.close()" and >> "os.Open(filename)?" are "punctuated" as they are -- where the question is. >> I feel like you're asking this compiler, "is there anything about this >> value that you need to tell me?" I like that. >> >> The long (crazy long!) discussion of error handling has among its many >> branches an analysis from the Go team about '?' and this kind of postfix >> interrogation. I'm watching it all with a bit of wonder, but I wanted to >> speak up and say how your human-language phrasing matches your idea of >> computer-language phrasing. That seems a powerful kind of naturalness to >> take advantage of in this issue and future ones. >> >> On Sat, Jun 29, 2019 at 2:56 PM Andrey Tcherepanov < >> xnow4f...@sneakemail.com> wrote: >> >>> Hello mighty fighters of errors! >>> >>> Here comes my half-thought idea of another way to express error handling: >>> >>> *Add a postfix '?' that checks value for **emptiness (nil, 0, "") **AND >>> an error for nil. * >>> >>> (Denis have shred it to pieces already in >>> https://github.com/golang/go/issues/32852. Thank you Denis.) >>> >>> I am not good with expressing my inner talk, so there are couple examples >>> >>> original , Go 1 function >>> >>> func stat(filename string) (os.FileInfo, error) { >>> >>> var info os.FileInfo >>> { >>> var a1 *os.File >>> if a1, err := os.Open(filename); err != nil || a1 == nil { >>> return _, err >>> } >>> var a2 os.FileInfo >>> if a2, err := a1.Stat(); err != nil || a2 == nil { >>> return _, err >>> } >>> info = a2 >>> } >>> return info, nil >>> } >>> >>> >>> And with "?", trying to avoid original try() proposal handle leak >>> >>> // would return _, err, but since there is no err in signature, will return >>> default value in case of error >>> // uses ? on func call that returns (value, error) >>> func stat2(filename string) (os.FileInfo) { >>> file := os.Open(filename)? >>> defer file.Close() >>> return file.Stat()? >>> } >>> // would return error too, uses ? as "not nil" on a variable too >>> func stat3(filename string) (_ os.FileInfo, err error) { >>> var file *os.File >>> defer file?.Close() >>> file := os.Open(filename)? >>> return file.Stat() >>> } >>> >>> >>> Thoughts? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golan...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/golang-nuts/b7520ffe-ec38-4157-8f95-92844dcb0d0f%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/golang-nuts/b7520ffe-ec38-4157-8f95-92844dcb0d0f%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> -- >> >> *Michael T. jonesmichae...@gmail.com* >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/93987580-3f1d-4ab8-b796-2e095d49a3b4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.