在Golang(也称为Go语言)工程师的面试中,可能会遇到各种技术性和概念性的问题。

一、基础部分

  1. Golang 中 make 和 new 的区别?

    • 共同点:两者都用于分配内存。
    • 不同点
      • make 专为 slice、map 和 channel 设计,返回初始化后的(非零)值。
      • new 分配内存并返回指向该内存的指针,初始化为零值。
      • make 返回类型本身(不是指针),而 new 返回指向类型的指针。
  2. 数组和切片的区别?

    • 数组:固定长度,值类型,直接存储数据。
    • 切片:动态数组,引用类型,引用底层数组。切片是对数组的抽象,包含长度、容量和底层数组的指针。
  3. for range 在遍历切片或映射时,迭代变量的地址会发生变化吗?

    • 在 for range 循
09-23 10:09