> For the complete documentation index, see [llms.txt](https://books.innohub.top/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.innohub.top/goinfo/info/func_meet.md).

# 常用函数

\[TOC]

## 1. 内建函数

* **`make`**

  ```go
  func make(t Type, size ...IntegerType) Type
  ```

  用于创建一个类型为`t`的对象的切片，映射，隧道`slice, map, chan`.而且只可以用来创建这三种对象。第一个参数是对象的类型，`make`返回值就是这个类型，不是指针。

  * `Slice`: 需要传入其他两个参数，第一个参数是切片的大小，第二个参数容量。容量必须大于size。可以省略容量，此时和size相等。`make([]int, 0, 19)`
  * `map`: 根据size的大小，初始化分配内存，分配后的map长度为0.如果忽略该参数，会初始化一个较小的内存. `make(map[string]int)`
  * `Channel`: 如果提供size参数，则根据此参数初始化缓冲区的大小。如果没有该参数，则无缓冲区。`a := make(chan int, 5)`
* **`new`**

  ```go
  func new(Type) *Type
  ```

  内建函数，用以分配内存空间。传递的参数是一个类型，不是值。返回值是指向这个新分配的零值的指针。只用来分配空间，**没有初始化.**
