![812c3837950f9f31fa291cf5fa231ff7.png](https://i-blog.csdnimg.cn/blog_migrate/a6339f57761a80f3807604293495f89d.jpeg)
基础语法
- 01
=
和:=
的区别? - 02 指针的作用
- 03 Go 允许多个返回值吗?
- 04 Go 有异常类型吗?
- 05 什么是协程(Goroutine)
- 06 如何高效地拼接字符串
- 07 什么是 rune 类型
- 08 如何判断 map 中是否包含某个 key ?
- 09 Go 支持默认参数或可选参数吗?
- 10 defer 的执行顺序
- 11 如何交换 2 个变量的值?
- 12 Go 语言 tag 的用处?
- 13 如何判断 2 个字符串切片(slice) 是相等的?
- 14 字符串打印时,
%v
和%+v
的区别 - 15 Go 语言中如何表示枚举值(enums)?
- 16 空 struct{} 的用途
实现原理
- 01 init() 函数是什么时候执行的?
- 02 Go 语言的局部变量分配在栈上还是堆上?
- 03 2 个 interface 可以比较吗 ?
- 04 2 个 nil 可能不相等吗?
- 05 简述 Go 语言GC(垃圾回收)的工作原理
- 06 函数返回局部变量的指针是否安全?
- 07 非接口非接口的任意类型 T() 都能够调用
*T
的方法吗?反过来呢?
并发编程
- 01 无缓冲的 channel 和有缓冲的 channel 的区别?
- 02 什么是协程泄露(Goroutine Leak)?
- 03 Go 可以限制运行时操作系统线程的数量吗?
代码输出
- 变量与常量
- 作用域
- defer 延迟调用
原文地址:Go 语言笔试面试题汇总 - 极客兔兔
知乎专栏:Go语言 - 极客兔兔
关注微博:@极客兔兔
关联答案:
怎么学习 Golang?www.zhihu.com