前段时间在找工作,也遇到一些不错的面试题,其中有一道很常见,记录一下,里面还有一点搞不明白的: 下面两段程序的输出是什么? 第一段: func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { fmt.Println(i) wg.Done() }() } wg.Wait() } 第二段: func main() { var wg sync.WaitGroup for i := 0; i <...
-
一道经常考的面试题
-
Go圣经-学习笔记入门-面试题
常问面试题 函数返回return XX, 是原子操作吗?(不是, 如果你看过雨痕老师的内存管理,就知道) 普通函数和闭包函数的区别有哪些?后者的应用场景在哪里?(闭包函数使用外部变量,是引用传递,注意:闭包函数运行时使用到该变量时,获取当时该变量的值。应用场景:闭包函数要比较小,有点像内联函数,用于defer等其他场景-关闭连接等) make和new有什么区别(make用于channel、map和slice的创建并初始化零值。new是指针对象。Effective Go中有个例子) var p *...
-
Golang面试题解析(三)
21.编译执行下面代码会出现什么? package main var( size :=1024 max_size = size*2 ) func main() { println(size,max_size) } 解析 考点:变量简短模式 变量简短模式限制: 定义变量同时显式初始化 不能提供数据类型 只能在函数内部使用 结果: syntax error: unexpected := 22.下面函数有什么问题? package main const cl = 100 var bl = 123 fu...
-
Gopher面试中的Coding
从四月份下半月开始,陆陆续续面试了几家公司,都是golang的岗位。每一次面试,侧重点都会有不同,有的会直接给过来一道试题, 然后边解题,边讲述自己的思路,然后面试官根据你的思路和你交流沟通;有的呢,让讲述自己最近做过的项目,遇到的难点, 自己怎么解决的问题思路,而无独有偶的呢,这样的面试中,都要需要展示编码能力。这篇文章就把自己最近面试中遇到的每一个编程问题, 分三步阐述出来:问题描述,解题思路,实际编程。 交替打印数字和字母 问题描述 使用两个 goroutine 交替打印序列,一个 gor...
-
Golang面试题解析(二)
12.是否可以编译通过?如果通过,输出什么? func main() { i := GetValue() switch i.(type) { case int: println("int") case string: println("string") case interface{}: println("interface") default: println("unknown") } } func GetValue() int { return 1 } 解析 考点:type 编译失败,因为t...
-
golang 面试题
分享出来几个go面试题,都非常简单,如果您有一些开发时候使用到的小技巧欢迎评论。 目前我写出来11个(再更新一道题目),未来会不定期更新。。。 1、写出下面代码输出内容。 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() ...
-
Golang面试题解析
最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 面试题 1. 写出下面代码输出内容。 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func(...