go golang 笔试题 面试题 笔试 面试
Posted miansheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go golang 笔试题 面试题 笔试 面试相关的知识,希望对你有一定的参考价值。
发现go的笔试题目和面试题目还都是比较少的,于是乎就打算最近总结一下。虽然都不难,但是如果没有准备猛地遇到了还是挺容易踩坑的。
就是几个简单的笔试题目,也可能面试的时候直接给看让说结果。
go面试题大本营
1, 用不同的goroutine去操作map的时候会存在线程同步的问题,把map换成int ,这个问题同样存在。在go里是这样。
2,下面这段代码输出的值为:
func ()
jsonStr:=[]byte(`"age":1`)
var value map[string]interface
json.Unmarshal(jsonStr,&value)
age:=value["age"]
fmt.Println(reflect.TypeOf(age))
//float64
3,下边代码是否有问题,问题在哪里
import (
"sync"
"fmt"
)
type UserAges struct
ages map[string] int
sync.Mutex
func (u *UserAges)Add(name string,age int)
u.Lock()
defer u.Unlock()
u.ages[name] = age
func (u *UserAges)Get(name string)int
if age,ok:=u.ages[name];ok
return age
return -1
问题在于,ages没有暴露背外部的包,导致调用者无法初始化ages。然后在调用add函数时,就会报错。考察函数的作用域问题。
4,下边代码的输出结果是什么?
func TestArrayAndSlice()
s1:=[]int1,2,3
s2:=s1[1:]
for i:=range s2
s2[i]+=10
fmt.Println(s2)
s2=append(s2, 4)
for i:=range s2
s2[i]+=10
fmt.Println(s2)
输出结果如下:这个是在考察数组和切片用s2截取s1的下边为1及之后;而后执行操作。
[12 13]
[22 23 14]
5,下边代码输出什么
func TestDoit()
doit:= func(arg int) interface
var result *struct=nil
if (arg>0)
result = &struct
return result
//输出结果。
//-1:result: <nil> 为空的匿名结构体
//1://result: & 匿名结构体的地址
if res:=doit(1);res!=nil
fmt.Println("result:",res)
6,下边代码的输出结果是什么
//放在main里边
//指定只能用一个逻辑处理器,方便看调度顺序。
runtime.GOMAXPROCS(1)
wg:=sync.WaitGroup
wg.Add(20)
for i:=0;i<10 ;i++
go func()
fmt.Println("i",i)
wg.Done()
()
for i:=0;i<10 ;i++
go func(i int)
fmt.Println("j",i)
wg.Done()
(i)
wg.Wait()
/*
j 9
i 10
i 10
i 10
i 10
i 10
i 10
i 10
i 10
i 10
i 10
j 0
j 1
j 2
j 3
j 4
j 5
j 6
j 7
j 8
*/
这个要注意,第一个for里没有传参数,第二个传参数了。所以第一个for里启动的goroutine用的i其实是主线程里的i;之所以都是10,(也有可能前面几个<10);是因为调用i的时候,i在主线程内已经加到10了。而第二个for里的i是通过参数传递,所以会打印0~9;
至于为什么会先打印J,9;希望有大神来回答下。
暂时先写这么多,回头再接着加。
转载注明出处--名白
http://www.cnblogs.com/mingbai/p/go-golangCodingTest.html
go面试题大本营
以上是关于go golang 笔试题 面试题 笔试 面试的主要内容,如果未能解决你的问题,请参考以下文章
《自然语言处理实战入门》 ---- 笔试面试题:机器学习基础(41-60)
《自然语言处理实战入门》 ---- 笔试面试题:机器学习基础(81-100)
《自然语言处理实战入门》 ---- 笔试面试题:机器学习基础(21-40)
《自然语言处理实战入门》 ---- 笔试面试题:机器学习基础(21-40)