广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/175825.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • go中make用法及常见的一些坑
    目录make用法和参数用法使用make常见的一些坑1:slice使用make2:map使用map:总结make用法和参数用法 golang分配内存有一个make函数,该函数第一个数类...
    99+
    2022-12-26
    go语言make go语言make
  • python3--中一些常见的坑(机制上的问题)
    python中is,==,id 的意思== :数值的比较is :内存地址的比较id :查看内存地址list(列表)中存在的一些坑重点:在循环一个列表时,最好不要进行删除的动作(一旦删除,索引会随之改变),容易错误。将下面列表中索引为奇数的元...
    99+
    2023-01-30
    机制 常见
  • eslint常见的一些报错及解决方法
    目录问题1:Component name “index” should always be multi-word问题2:Newline required at...
    99+
    2023-05-13
    eslint报错怎么解决 eslint不起作用 eslint报错怎么解决
  • React中refs的一些常见用法汇总
    目录什么是Refs 一、String 类型的 Refs 二、回调 Refs三、React.createRef()四、useRef五、Refs 与函数组件总结什么是Refs Refs...
    99+
    2022-11-12
  • Spring中@RequestParam使用及遇到的一些坑
    目录加与不加的区别使用RequestParam遇到的一些坑(总结)总结加与不加的区别 @RequestMapping("/list1") public String test1(in...
    99+
    2022-11-13
  • 一些常见的CentOS Node.js报错及其解决方法
    在CentOS上使用Node.js时,可能会遇到各种报错和问题。在本文中,我将介绍一些常见的CentOS Node.js报错及其解决方法。“command not found” 错误当您在终端或控制台中运行node或npm命令时,会看到“c...
    99+
    2023-05-14
  • 一些常见IIS无法访问PHP的原因及解决方法
    在Windows的Web服务器环境中,IIS是非常常见的Web服务器软件之一。作为一个全面的Web服务器,IIS可以运行各种类型的Web应用程序,包括基于PHP语言编写的应用程序。然而,在实际应用中,有时我们会发现IIS无法访问或运行PHP...
    99+
    2023-05-14
    php iis
  • 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+
    2022-11-11
  • javascript中void(0)用法及常见问题有哪些
    本篇内容介绍了“javascript中void(0)用法及常见问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!void 操作符用法格...
    99+
    2023-06-27
  • java中String的一些常见方法深入解析
    这篇文章主要介绍“java中String的一些常见方法深入解析”,在日常操作中,相信很多人在java中String的一些常见方法深入解析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-19
  • GO编程中常见的数据类型错误及其解决方法
    在GO编程中,数据类型错误常常是程序出现问题的主要原因之一。本文将介绍GO编程中常见的数据类型错误,并提供相应的解决方法。 类型不匹配 类型不匹配是GO编程中最常见的类型错误之一。它通常发生在将一个类型的值赋给另一个类型时。 例如,下...
    99+
    2023-09-20
    关键字 数据类型 编程算法
  • GO语言中打包HTTP文件的常见错误及解决方法!
    随着互联网的快速发展,现在有越来越多的程序需要打包HTTP文件。GO语言作为一门高效而又灵活的编程语言,也经常被用来打包HTTP文件。但是,随着开发的深入,我们会发现一些常见的错误,这些错误可能会导致程序无法正常工作。在本文中,我们将讨论...
    99+
    2023-06-24
    http 打包 文件
  • 聊聊golang中一些常见的文本替换方法
    Golang是一个强类型、高效的编程语言,它拥有丰富的语法特性和面向对象的方法,受到越来越多程序员的欢迎。 在Golang中,替换文本是一个非常常见的操作。无论是针对字符串还是文件内容,都有很多函数和API可以实现快速高效地替换文本。本文将...
    99+
    2023-05-14
  • C++中vector的常见用法有哪些
    C++中vector的常见用法包括: 创建vector:可以通过声明一个vector对象并指定元素类型,或者通过拷贝或移动已有v...
    99+
    2023-10-26
    C++ vector
  • python 中的 f 字符串及其常见用法
    有个小伙伴看到之前写的Faker库相关文章中出现了f'{}' 这个东东,他问我是啥意思? 实际上,这个是使用到了 f-string 作为格式化的方法,为此简单罗列了一下 f-string 及其常见用法,给小伙伴们作为参考。 一、f-stri...
    99+
    2023-08-31
    python 开发语言
  • python中常见的运算符及用法实例
    目录前言算术运算符关系运算符逻辑运算符成员运算符身份运算符三目运算符运算符优先级总结前言 python中的运算符主要包括算术运算符,关系(比较)运算符,赋值运算符,逻辑运算符,成员运...
    99+
    2022-11-13
  • GO语言中常见的排序算法使用示例
    目录快排冒泡选择排序插入排序希尔排序二分法查找快排 package main import ( "fmt" "math/rand" "time" ) func main() {...
    99+
    2022-11-13
  • GO语言中常见的排序算法怎么使用
    今天小编给大家分享一下GO语言中常见的排序算法怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。快排package&nb...
    99+
    2023-06-30
  • Go 中有哪些常见的数据类型,以及如何使用 NPM 安装它们?
    Go 是一种现代化的编程语言,它的出现为开发者带来了更为高效和快速的编程体验。在 Go 语言中,数据类型是编写高效程序的关键之一。本文将介绍 Go 中常见的数据类型以及如何使用 NPM 安装它们。 一、Go 常见的数据类型 布尔型 布尔...
    99+
    2023-09-03
    数据类型 npm ide
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作