1) 基础语言描述理解考察https://www.tutorialspoint.com/go/go_interview_questions.htm这里有一栏、全面的问答,并且非常基础也包括golang的一些开放性话题的讨论 基础语言代码考察http://www.golangpro.com/2015/
转载 2018-06-29 16:43:00
135阅读
2评论
【代码】Golang面试-Channel。
1. make与new的区别Make 用于map、slice 和channel几种类型的内存分配。并且返回一
转载 2022-10-31 09:25:17
10000+阅读
golang slice扩容原理新申请容量 cap,如果大于 2 倍旧容量 (oldcap),要扩容的容量(newcap)= 新申请容量 cap如果旧容量(oldcap)< 1024, 要扩容的容量(newcap)= 旧容量(oldcap)* 2如果旧容量(oldcap) >=1024,要扩容的容量(newcap)= 旧容量(oldcap)* 1.251.18版本以后新逻辑新申请容量 cap
原创 2023-03-15 15:46:10
149阅读
基础篇1、make和new的区别共同点:都是给变量分配内存的,且在堆上分配内存不同点:作用变量不同: make只能用来分配slice,map,channel的数据;new可以分配任意类型的数据返回类型不一样: new返回指向变量的指针,make返回变量本身new 分配的空间被清零。make 分配空间后,会进行初始化var v *int v = new(int) *v = 8 fmt.Println
原创 2023-05-09 17:35:14
136阅读
Golang面试题 所有题目,一行一行敲过亲自反复验证后.100%没有问题.里面加了一些自己的测试结果和理论,应该都是对的. 这一套题最棒的地方在于可以学习到很多书上没有的东西,有很多平时注意不到的地方这里都提到了, 不光是在准备面试,同时也有很多应用非常巧妙的地方可以在工作中借鉴.
转载 2021-07-30 15:37:00
841阅读
2评论
32. map的value赋值问题 type Student struct{Name string} m := make(map[string]Student) 这
原创 2022-06-04 01:14:48
10000+阅读
【初级】下面属于关键字的是()A. fu
原创 2023-06-13 14:49:59
161阅读
Golang精编100题能力模型级别 模型 初级 primary 熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范
原创 2021-07-14 09:31:47
145阅读
Golang精编100题能力模型级别 模型 初级 primary 熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范; 中级 intermediate 能够独立完成用户故事的开发和测试;能够嗅出代码的坏味道,
原创 2021-07-14 09:31:35
806阅读
Golang精编100题能力模型级别 模型 初级 primary 熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范;
原创 2022-01-11 10:15:44
872阅读
1点赞
1评论
1.定义提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 主要包括以下几个角色:抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()、first()
Gin框架的优势有哪些?高性能:Gin采用了基于Radix树的路由算法和高效的JSON编码器,可以大幅提升Web应用程序的性能。轻量级:Gin使用Go语言开发,体积小、速度快,适合构建轻量级、高并发的Web服务。易用性:Gin提供了简洁的API和灵活的中间件机制,使得代码编写和调试都非常方便。如何在Gin中实现请求参数校验?可以使用Gin的binding包来实现请求参数校验。该包提供了多种校验器,
原创 2023-05-23 10:46:50
836阅读
golang面试题整理 1、go的调度2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 func b() { for i := 0; i
转载 2021-04-06 17:25:00
225阅读
2评论
1. 写出下面代码输出内容。package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer f
转载 2024-09-06 14:27:08
150阅读
说一下channel底层实现原理Go 中的 channel 是一种用于多个 goroutine 之间通信和同步的原语。channel 在 Go 内部是通过信号量和锁实现的。当一个 goroutine 向 channel 中写入数据时,它首先会获取 channel 的写锁,以确保只有它可以向 channel 中写入数据。如果 channel 已经满了,那么这个 goroutine 将被阻塞,直到另一
原创 2023-05-14 09:07:45
632阅读
1. golang协程为什么比线程轻量?  1. go协程调用跟切换比线程效率高。   线程是内核对外提供的服务,应用程序可以通过系统调用让内核启动线程,由内核来负责线程调度和切换。线程在等待IO操作时线程变为unrunnable状态会触发上下文切换。现代操作系统一般都采用抢占式调度,上下文切换一般发生在时钟中断和系统调用返回前,调度器计算当前线程的时间片,如果需要切换就从运行队列中选出一个目标线
转载 2023-08-03 14:02:12
73阅读
golang中gc回收是如何实现的?Go 的垃圾回收(GC)是一个自动化的过程,用于检测和清除不再使用的内存对象。在 Go 中,垃圾回收器主要采用三色标记-清除算法实现,并且是并发和增量执行的。标记标记阶段是垃圾回收的第一步,它通过遍历根对象(如全局变量、调用栈等)来寻找所有可达的对象。在此过程中,GC 算法会将可达的对象标记成黑色,未被标记的对象则为白色。垃圾清理垃圾清理阶段是垃圾回收的第二步,
原创 2023-05-16 10:26:06
472阅读
Big Picture年底了,面试/被面试的需求比较多,正好有需要让我整理一份面试题,干脆写一份,权当对自己的复习/整理了go语言切片和数组区别,go切片的原理:数组[array]:初始化后长度是固定的,无法修改其长度 初始化: array := [5]int{1,2,3,4,5}/ array := […]int{1,2,3,4,5} Go中的数组是值类型切片[slices]: s :=[]in
原创 2021-05-17 17:02:40
411阅读
基础1、golang 中 make 和 new 的区别?(基本必问)区别:在go语言中,make和new都是内存的分配(堆上),但是make只用于slice、map以及channel的初始化(非零值);而new用于类型的内存分配,并且内存置为零。make返回的是引用类型本身;而new返回的是指向类型的指针2、数组和切片的区别 (基本必问)区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定
转载 2021-11-25 00:31:38
26阅读
  • 1
  • 2
  • 3
  • 4
  • 5