美文网首页
go new,make的区别,数组和切片的区别

go new,make的区别,数组和切片的区别

作者: 卖毛玉的小贩 | 来源:发表于2019-10-11 20:46 被阅读0次

1.new和make的区别?

  • 相同点:
    • new和make都是用来开辟空间的
  • 不同点:
    • new是初始化一个类型的指针,返回的是类型指针,而里面的值为默认初始值,只对值类型有效
    • make是针对slice切片,map字典,chan管道初始化,并且返回对应的初始值
      • 并非返回指针,而是对应的类型有效值

2.数组和切片的区别

  • 相同点:
    • 都是一系列用来存放对应数据的集合
  • 不同点:
    • 基本:
      • 数组不可改变,定义后只能修改,无法增删
      • 切片可以进行后续操作改变
    • 语法定义:
      • 数组的语法为: var arr [10]int
      • 切片的语法为: var arr []int
    • 类型:
      • 数组:值类型,进行函数传递值时,通常是值传递,拷贝一份后进行操作
      • 切片:引用类型,函数操作时,针对传递指针进行操作
    • 空间大小:
      • 数组:数组大小为初始值时,默认的长度以及类型进行开辟空间
      • 切片:切片大小默认为24。这是因为切片的结构体只存放三个3个变量
        • 指针,长度,容量
        • 切片可以进行增删值,当超出现有容量后,会在1024容量内进行翻倍,超出后则每次增加1/4

相关文章

  • go new,make的区别,数组和切片的区别

    1.new和make的区别? 相同点:new和make都是用来开辟空间的 不同点:new是初始化一个类型的指针,返...

  • Golang中make与new有何区别?

    Golang中make与new有何区别? 一、前言 本文主要给大家介绍了Go语言中函数new与make的使用和区别...

  • Go学习总结笔记(一)

    go version 1.13 基础语法 1. new(T) 和 make(T,args) 的区别? new(T)...

  • Go make 和 new 的区别

    new(T) 返回的是 T 的指针 new(T) 为一个 T 类型新值分配空间并将此空间初始化为 T 的零值,返回...

  • Go make 和 new 的区别

    前言 在 go 中对某种类型进行初始化时会用到 make 和 new, 因为它们的功能相似,所以初学者可能对它们的...

  • Go语言中new和make的区别

    转载自Go语言中new和make的区别 Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我...

  • go的new和make创建引用类型的问题

    go的引用类型包含 slice、map、channel 内置函数new和make创建引用类型的区别:new:会根据...

  • Go数组和切片区别

    数组是值传递,切片是引用传递 切片可扩容 切片多一个cap属性 切片底层用数组实现

  • Go 数组和切片的区别

    内部实现 数组数组是一个长度固定的数据类型,用于存储一段具有相同类型的元素的连续块。数组存储的类型可以是内置类型,...

  • <>

    数组和切片 切片和数组的区别 数组是属于值类型。结构体,基础类型数据也属于值类型。 注意GO语言对于“传值和传引用...

网友评论

      本文标题:go new,make的区别,数组和切片的区别

      本文链接:https://www.haomeiwen.com/subject/byqtuctx.html