4 ms·
in Go ‘new’ is a function, not a keyword I think that parent probably refers to the lack of something like this: x := new MyType
by tbarbugli 4y ago
in Go ‘new’ is a function, not a keyword
I think that parent probably refers to the lack of something like this:
x := new MyType
- kevin_thibedeau 4y agoThis requires an exception mechanism to handle allocation failure. This issue pervades C++ when exceptions are disabled. Important error handling goes unhandled.
- petmon 4y agoHow does Go handle allocation failure? In my understanding objects may be allocated on the stack or heap per the compiler's whims. If a heap allocation fails, you just get "fatal error: runtime: out of memory" and an abort.
- morelisp 4y agoYour understanding is correct. That's also what you will effectively get with C or C++ on Linux anywhere you would have had a choice between C++ and Go to behind with.
- ericpruitt 4y agoSince when do heap allocation failures on Linux result in an abort? In C, malloc(3) will return NULL on failure and set errno accordingly. Sure, if overcommit is enabled, you might get a fault if you try to access memory that was allegedly allocated, but there is no strict "malloc failure === fatal error" relationship.
- morelisp 4y agomalloc never fails on normal Linux configurations except in very rare instances not applicable to this discussion (e.g. allocating a single structure larger than your virtual memory space). > if overcommit is enabled This is the case on ~all systems.