当前位置: 首页 > news >正文

八股(One Day one)

        最近老是看到一些面试的视频,对于视频内部面试所提到的八股文,感觉是知道是什么,但是要说的话,却又不知道该怎么说(要不咋称之为八股文呢),所以就想到写一篇八股文总结的博客,以便进行学习和复习。

        目前的计划安排是一天完成一道,具体是哪个主题的不一定,尽可能做到一天一道,慢慢丰富起内容。


golang基础

1、golang中new和make的作用,以及他们的区别

自己想的(可以忽略),直接看下面标准答案:

new:new的作用就是传入一个类型,创建一个对象,并返回这个对象的指针。

make:make就是为slice、map、chan、channel初始化空间

区别:没啥区别呀,就不是一个东西😥。(呃呃呃,自己脑子里的就是不靠谱)

标准回答:

new函数的作用

  • 在 Go 语言中,new是一个内置函数。它的主要作用是分配内存,并且将这块内存初始化为零值,然后返回指向这块内存的指针

make函数的作用

  • make也是 Go 语言中的一个内置函数,但它和new有不同的用途。make主要用于创建切片(slice)、映射(map)和通道(channel)这三种复合类型,并且返回一个初始化后的(非零值)对象。
  • 对于切片,make会分配一个底层数组,并返回一个切片对象,这个切片对象包含了长度(len)和容量(cap)信息。例如,make([]int, 2)会创建一个长度为2int类型切片,其底层数组已经被分配并且元素被初始化为int类型的零值(也就是0)。
  • 对于映射,make会创建一个空的映射,这个映射可以用于存储键 - 值对。例如,make(map[string]int)会创建一个键为string类型,值为int类型的空映射。
  • 对于通道,make会创建一个通道,可以用于在不同的goroutine之间进行通信。例如,make(chan int)会创建一个int类型的通道。

newmake的区别

  • 功能用途不同
    • new主要用于分配内存并返回指向该内存的指针,它可以用于任何类型,只要你想得到一个指向该类型零值的指针。而make主要用于初始化并返回切片、映射和通道这三种复合类型,它返回的是一个已经初始化的非零值对象
  • 返回值类型不同
    • new返回的是一个指针,类型是*TT是你传入的类型)。例如new(int)返回*int。而make返回的是切片、映射或通道本身,例如make([]int, 5)返回[]int类型的切片,make(map[string]int)返回map[string]int类型的映射,make(chan int)返回chan int类型的通道。
  • 内存初始化不同
    • new只是将分配的内存清零,也就是将值初始化为该类型的零值。而make对于切片会分配底层数组并初始化元素;对于映射会创建一个空的可以存储键 - 值对的数据结构;对于通道会创建一个可以用于通信的通道对象,这些初始化过程比new的简单清零操作更复杂。

        


操作系统


数据结构


计算机网络


Linux


Mysql


Redis


分布式


http://www.lryc.cn/news/511524.html

相关文章:

  • 如何快速又安全的实现端口转发【Windows MAC linux通用】
  • LongLLMLingua: 长上下文场景的智能提示压缩框架
  • Django serializers:把ValidationError处理的更优雅
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践技术
  • 【HarmonyOS之旅】ArkTS语法(一)
  • 【畅购电商】项目总结
  • python|利用ffmpeg按顺序合并指定目录内的ts文件
  • IP属地和所在地不一致什么意思?怎么换成另外一个地方的
  • Hive其十,优化和数据倾斜
  • matlab reshape permute
  • 数据库sql语句单表查询
  • Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
  • 科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型
  • 强化特种作业管理,筑牢安全生产防线
  • 跨语言学习之C++ 和 Python 的赋值操作 (等号“=“) 的区别
  • 【操作系统】如何创建一个守护进程
  • 常见显示方案
  • USB Hub 检测设备
  • 安卓开发使用Gemini高效AI开发-Android Studio 中使用Gemini
  • wangEditor富文本插件在vue项目中使用和媒体上传的实现
  • ESP-IDF学习记录(2)ESP-IDF 扩展的简单使用
  • python中函数的用法总结(二阶段)
  • 一份关于 Ubuntu 系统下代理配置的故障排查笔记
  • 使用 Colyseus 构建多人实时白板应用
  • 【探花交友】SpringCache
  • Spring API 接口加密/解密
  • 漏洞扫描:网络安全的 “体检” 与 “防护指南”
  • 【可靠有效】springboot使用netty搭建TCP服务器
  • 机器视觉中的单线程、多线程与跨线程:原理与应用解析
  • 0040__Linux内核4.14版本——drm框架分析(1)——drm简介