Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yeah, it's arbitrary that val, ok := <- ch does something different than val := <- ch, but any other convention for differentiating blocking from nonblocking would be just as arbitrary. I think it's something I would get used to after a while.


It's not so much arbitrary as an exception. "The RHS is evaluated and assigned to the LHS, except in this edge case". Using a different syntax would be just as arbitrary, but less of an exception e.g. val, ok := <- ch, val := <~ ch still follows the expected order of evaluation.


It certainly does, but they're both blocking.

http://news.ycombinator.com/item?id=4569456


Thanks for the correction. Back when I first used go, they did different things. The change makes sense, I think-- we already have select for nonblocking I/O.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: