在Golang(也称为Go语言)工程师的面试中,可能会遇到各种技术性和概念性的问题。
一、基础部分
-
Golang 中 make 和 new 的区别?
- 共同点:两者都用于分配内存。
- 不同点:
- make 专为 slice、map 和 channel 设计,返回初始化后的(非零)值。
- new 分配内存并返回指向该内存的指针,初始化为零值。
- make 返回类型本身(不是指针),而 new 返回指向类型的指针。
-
数组和切片的区别?
- 数组:固定长度,值类型,直接存储数据。
- 切片:动态数组,引用类型,引用底层数组。切片是对数组的抽象,包含长度、容量和底层数组的指针。
-
for range 在遍历切片或映射时,迭代变量的地址会发生变化吗?
- 在 for range 循