返回顶部
首页 > 资讯 > 后端开发 > GO >go中make用法及常见的一些坑
  • 483
分享到

go中make用法及常见的一些坑

go语言makego语言make 2022-12-26 12:12:02 483人浏览 独家记忆
摘要

目录make用法和参数用法使用make常见的一些坑1:slice使用make2:map使用map:总结make用法和参数用法 golang分配内存有一个make函数,该函数第一个数类

make用法和参数用法

golang分配内存有一个make函数,该函数第一个数类型,第二个参数的分配的空间,第三个

参数时预留分配空间,前两个参数很好理解,但对第三个参数不是很理解,

例如a:=make([]int,5,10),len(a)输出结果为5,cap(a) 输出结果为10 ,对a[4]可以正常赋值,但是对a[5]进行赋值就会发现报错

package main
 
import "fmt"
 
func main(){
	a := make([]int, 5, 10)
	fmt.Println("len(a):", len(a))
	fmt.Println("cap(a):", cap(a))
	fmt.Println(a)
	b := a[:cap(a)]
	fmt.Println(b)
}

使用make常见的一些坑

1:slice使用make

slice在make了之后,设置了slice的大小之后。实际上是在slice里面添加了len个数据,

如果在使用append来操作的话,相当于在slice后面添加新的元素,

arr := make([]int, 10)
	fmt.Println("len=", len(arr), "cap=", cap(arr), "arr", arr)
 
	arr = append(arr, 1)
	fmt.Println("len=", len(arr), "cap=", cap(arr), "arr", arr)
 
	arr = make([]int, 10, 20)
	fmt.Println("len=", len(arr), "cap=", cap(arr), "arr", arr)

输出结果

2:map使用map:

注意:map在使用make的时候,就算指定了len,也是不起作用的,这个len起不到限制的作用。如:

temp := make(map[string]int)
	fmt.Println("len(temp):", len(temp), "temp:", temp)
 
	temp1 := make(map[string]int, 3)
	fmt.Println("len(temp1):", len(temp1), "temp1", temp1)

输出结果

下面的例子阐述了new和make的区别

var p *[]int = new([]int)       // 分配切片数据结构; *p == nil; 几乎没有作用
var v  []int = make([]int, 100) // 切片v引用一个[100]int的数组

// 没有必要:
var p *[]int = new([]int)
*p = make([]int, 100, 100)

// 惯用做法:
v := make([]int, 100)

记住,make只应用于映射、切片和信道,并且不会返回指针。如果想获得一个显式的指针,使用new分配空间或者直接获取变量的地址。

总结

到此这篇关于Go中make用法及常见的一些坑的文章就介绍到这了,更多相关go的make用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: go中make用法及常见的一些坑

本文链接: https://lsjlt.com/news/175825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go中make用法及常见的一些坑
    目录make用法和参数用法使用make常见的一些坑1:slice使用make2:map使用map:总结make用法和参数用法 golang分配内存有一个make函数,该函数第一个数类...
    99+
    2022-12-26
    go语言make go语言make
  • Java中常见的坑有哪些
    今天小编给大家分享一下Java中常见的坑有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前言同一个代码“坑”,踩第一...
    99+
    2023-06-27
  • C++构造函数一些常见的坑
    文章转自微信 公众号:Coder梁(ID:Coder_LT) 某一天我们接到了一个需求,需要开发一个类似于STL中string的类。 我们很快写好了代码: #include <...
    99+
    2024-04-02
  • python3--中一些常见的坑(机制上的问题)
    python中is,==,id 的意思== :数值的比较is :内存地址的比较id :查看内存地址list(列表)中存在的一些坑重点:在循环一个列表时,最好不要进行删除的动作(一旦删除,索引会随之改变),容易错误。将下面列表中索引为奇数的元...
    99+
    2023-01-30
    机制 常见
  • Java中ReentrantLock常见的坑有哪些
    这篇文章主要介绍“Java中ReentrantLock常见的坑有哪些”,在日常操作中,相信很多人在Java中ReentrantLock常见的坑有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中Re...
    99+
    2023-06-30
  • React中refs的一些常见用法汇总
    目录什么是Refs 一、String 类型的 Refs 二、回调 Refs三、React.createRef()四、useRef五、Refs 与函数组件总结什么是Refs Refs...
    99+
    2024-04-02
  • eslint常见的一些报错及解决方法
    目录问题1:Component name “index” should always be multi-word问题2:Newline required at...
    99+
    2023-05-13
    eslint报错怎么解决 eslint不起作用 eslint报错怎么解决
  • Spring中@RequestParam使用及遇到的一些坑
    目录加与不加的区别使用RequestParam遇到的一些坑(总结)总结加与不加的区别 @RequestMapping("/list1") public String test1(in...
    99+
    2024-04-02
  • 一些常见的CentOS Node.js报错及其解决方法
    在CentOS上使用Node.js时,可能会遇到各种报错和问题。在本文中,我将介绍一些常见的CentOS Node.js报错及其解决方法。“command not found” 错误当您在终端或控制台中运行node或npm命令时,会看到“c...
    99+
    2023-05-14
  • javascript中void(0)用法及常见问题有哪些
    本篇内容介绍了“javascript中void(0)用法及常见问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!void 操作符用法格...
    99+
    2023-06-27
  • Linux下netstat命令的一些常见用法
    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Membershi...
    99+
    2022-06-04
    命令 常见 Linux
  • python列表中常见的一些排序方法
    目录1、冒泡排序法方法一:直接使用for循环方法二:使用while语句2、选择排序法方法一:remove和append同时使用方法二:pop和append同时使用3、list.sor...
    99+
    2024-04-02
  • 一些常见IIS无法访问PHP的原因及解决方法
    在Windows的Web服务器环境中,IIS是非常常见的Web服务器软件之一。作为一个全面的Web服务器,IIS可以运行各种类型的Web应用程序,包括基于PHP语言编写的应用程序。然而,在实际应用中,有时我们会发现IIS无法访问或运行PHP...
    99+
    2023-05-14
    php iis
  • C++中vector的常见用法有哪些
    C++中vector的常见用法包括: 创建vector:可以通过声明一个vector对象并指定元素类型,或者通过拷贝或移动已有v...
    99+
    2023-10-26
    C++ vector
  • VBS控制Excel的一些常见方法
    这篇文章主要介绍“VBS控制Excel的一些常见方法”,在日常操作中,相信很多人在VBS控制Excel的一些常见方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VBS控制Excel的一些常见方法”的疑惑有所...
    99+
    2023-06-08
  • java中String的一些常见方法深入解析
    这篇文章主要介绍“java中String的一些常见方法深入解析”,在日常操作中,相信很多人在java中String的一些常见方法深入解析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • Go语言项目开发中的常见陷阱与避坑指南
    在Go语言项目开发中,我们可能会遇到一些常见的陷阱,这些陷阱可能会给我们的项目带来一些不必要的麻烦和困扰。因此,为了帮助大家更好地避免这些陷阱,本文将介绍一些常见的陷阱以及相应的避坑指南。一、内存泄漏Go语言的垃圾回收机制是其一大特点,但并...
    99+
    2023-11-02
    性能优化(Performance Optimization) 错误处理(error handling) 并发(Concu
  • python中常见的运算符及用法实例
    目录前言算术运算符关系运算符逻辑运算符成员运算符身份运算符三目运算符运算符优先级总结前言 python中的运算符主要包括算术运算符,关系(比较)运算符,赋值运算符,逻辑运算符,成员运...
    99+
    2024-04-02
  • python 中的 f 字符串及其常见用法
    有个小伙伴看到之前写的Faker库相关文章中出现了f'{}' 这个东东,他问我是啥意思? 实际上,这个是使用到了 f-string 作为格式化的方法,为此简单罗列了一下 f-string 及其常见用法,给小伙伴们作为参考。 一、f-stri...
    99+
    2023-08-31
    python 开发语言
  • css中常见margin用法有哪些
    小编给大家分享一下css中常见margin用法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!margin 1、margi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作