文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
创建切片、map 和 管道
内置函数 make
以一个类型作为参数,它必须是一个切片,map 或者管道类型,它返回一个 T 类型的值,而不是(*T)类型,它会按初始化值章节描述的方式进行初始化。
Call Type T Result
make(T, n) slice slice of type T with length n and capacity n
make(T, n, m) slice slice of type T with length n and capacity m
make(T) map map of type T
make(T, n) map map of type T with initial space for approximately n elements
make(T) channel unbuffered channel of type T
make(T, n) channel buffered channel of type T, buffer size n
n 和 m 必须是整数类型或者无类型常量。一个常量参数不能为负数并且该值在 int
类型的范围内;如果它是无类型常量,会被转换成 int
类型。如果 n 和 m 都是常量,那么 n 必须大于 m。如果 n 是负数或者大于 m 会引发运行时 panic。
s := make([]int, 10, 100) // slice with len(s) == 10, cap(s) == 100
s := make([]int, 1e3) // slice with len(s) == cap(s) == 1000
s := make([]int, 1<<63) // illegal: len(s) is not representable by a value of type int
s := make([]int, 10, 0) // illegal: len(s) > cap(s)
c := make(chan int, 10) // channel with a buffer size of 10
m := make(map[string]int, 100) // map with initial space for approximately 100 elements
使用 make 来指定大小初始化 map 类型将会创建一个预留 n 个元素空间的 map 类型。更详细的行为依赖于具体实现。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论