Go Built-In Function new: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 4: Line 4:
<font color=darkkhaki>
<font color=darkkhaki>


=Internal=
==Internal==


* [[Go Concepts - Functions#Built-in_Functions|Built-in Functions]]
* [[Go Concepts - Functions#Built-in_Functions|Built-in Functions]]
* [[Go Concepts - Lexical Structure#Pre-Declared_Identifiers|Pre-declared Identifiers]]
* [[Go Concepts - Lexical Structure#Pre-Declared_Identifiers|Pre-declared Identifiers]]


=Overview=
==Overview==


The <tt>new()</tt> built-in function takes a type as argument, allocates memory of the given type and returns ''a pointer'' to it.
The <tt>new()</tt> built-in function takes a type as argument, allocates memory of the given type and returns ''a pointer'' to it.
Line 20: Line 20:
We don't have to worry about de-allocating memory allocated with <tt>new()</tt>. It is automatically [[Go_Concepts_-_Memory_Model#Garbage_Collection|garbage collected]].
We don't have to worry about de-allocating memory allocated with <tt>new()</tt>. It is automatically [[Go_Concepts_-_Memory_Model#Garbage_Collection|garbage collected]].


=<tt>new()</tt> and <tt>New()</tt>=
==<tt>new()</tt> and <tt>New()</tt>==


The "[[Go_Concepts_-_Error_Handling#The_.22errors.22_Package|errors]]" package exposes a <tt>New()</tt> function. Do not mistake it for <tt>new()</tt>.
The "[[Go_Concepts_-_Error_Handling#The_.22errors.22_Package|errors]]" package exposes a <tt>New()</tt> function. Do not mistake it for <tt>new()</tt>.

Revision as of 01:20, 25 August 2023

Overview

new() can be used to create new slice, map and struct instances.

TO DEPLETE

Internal

Overview

The new() built-in function takes a type as argument, allocates memory of the given type and returns a pointer to it.

var ptr *some_type
ptr = new(some_type)

We don't have to worry about de-allocating memory allocated with new(). It is automatically garbage collected.

new() and New()

The "errors" package exposes a New() function. Do not mistake it for new().