Home  >  Article  >  Backend Development  >  What are the usages of make in go language?

What are the usages of make in go language?

王林
王林Original
2021-01-08 14:14:436342browse

The usage of go language make is: 1. [make(map[string]string)]; 2. [make([]int, 2)]; 3. [make([]int, 2, 4)].

What are the usages of make in go language?

#The operating environment of this article: windows10 system, GO 1.11.2, thinkpad t480 computer.

(Learning video sharing: Programming video course)

Golang mainly has built-in functions new and make to allocate memory.

make can only allocate memory for slice, map, and channel, and return an initialized value. First, let’s take a look at the following three different usages of make:

make(map[string]string)
make([]int, 2)
make([]int, 2, 4)

The first usage is that the length of the parameter is missing and only the type is passed. This usage can only be used in scenarios where the type is map or chan. For example, make([]int) will report an error. The space length returned in this way defaults to 0.

The second usage specifies the length. For example, make([]int, 2) returns a slice with a length of 2

The third usage specifies the second parameter. The length of the slice. The third parameter is used to specify the length of reserved space. For example, a := make([]int, 2, 4). It is worth noting here that the total length of the returned slice a is 4. Reserved does not mean the additional length of 4, but actually includes the number of the first two slices. So for example, when you use a := make([]int, 4, 2), a syntax error will be reported.

Therefore, when we allocate memory for a slice, we should try our best to estimate the possible maximum length of the slice, and reserve memory space for the slice by passing the third parameter to make, so as to avoid The overhead caused by secondary allocation of memory greatly improves the performance of the program.

Related recommendations: golang tutorial

The above is the detailed content of What are the usages of make in go language?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn