GolangRoadmap-Golang面试题笔记(2)

欢迎加入GolangRoadmap,一个年轻的GO开发者社区https://www.golangroadmap.com/,目前是邀请制注册,注册码:Gopher-1035-0722,已开放Golang岗位内推,Golang企业题库,Golang精品资源等栏目

以下题目资源都来自GolangRoadmap->Go求职->企业题库

题目ID-13 Go 语言当中 new的作用是什么?
new创建一个该类型的实例,并且返回指向该实例的指针。new函数是内建函数,函数定义:

func new(Type) *Type 
  • 使用new函数来分配空间
  • 传递给new函数的是一个类型,而不是一个值
  • 返回值是指向这个新分配的地址的指针

题目ID-14 Go 语言当中 make的作用是什么?
make的作用是为slice, map or chan的初始化 然后返回引用 make函数是内建函数,函数定义:

func make(Type, size IntegerType) Type 

make(T, args)函数的目的和new(T)不同 仅仅用于创建slice, map, channel 而且返回类型是实例

题目ID-15 Printf(),Sprintf(),FprintF() 都是格式化输出,有什么不同?
虽然这三个函数,都是格式化输出,但是输出的目标不一样

  • Printf是标准输出,一般是屏幕,也可以重定向。
  • Sprintf()是把格式化字符串输出到指定的字符串中。
  • Fprintf()是把格式化字符串输出到文件中。

题目ID-16 Go 语言当中数组和切片的区别是什么?

  • 数组固定长度。数组长度是数组类型的一部分,所以[3]int和[4]int是两种不同的数组类型数组需要指定大小,不指定也会根据初始化,自动推算出大小,大小不可改变。数组是通过值传递的。

  • 切片可以改变长度。切片是轻量级的数据结构,三个属性,指针,长度,容量不需要指定大小切片是地址传递(引用传递)可以通过数组来初始化,也可以通过内置函数make()来初始化,初始化的时候len=cap,然后进行扩容。

题目ID-18 Go 语言当中数组和切片在传递的时候的区别是什么

  • 数组是值传递

  • 切片看上去像是引用传递,但其实是值传递。切片的值传递是复制的切片中数组point的指针,所以造成的现象是修改切片数据,调用者也变了,实际上他们修改的都是底层数组的数据。

题目ID-19 Go 语言是如何实现切片扩容的?
切片是自动扩容的,即若切片中元素超过了容量上限,切片会自动调整容量。在容量小于1024时,每次扩容,容量翻倍。容量大于1024后,每次扩容,容量增加1/4。
如果新申请容量大于2倍的旧容量,最终容量就是新申请的容 量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值