go golang 笔试题 面试题 笔试 面试

发现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:=[]int{1,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 golang 笔试题 面试题 笔试 面试的更多相关文章

  1. C#笔试题面试题锦集(全)总20篇

    前些时候找过一次工作,收集了很多不错的笔试题目.共享一下:) C#笔试题面试题锦集(20) 微软应试题目 (2010-01-15 21:32) C#笔试题面试题锦集(19) 雅虎C#题目 (2010- ...

  2. 剑指Offer——联通研究院笔、面试题 (Offer已收割)

    剑指Offer--联通研究院笔.面试题 1.二叉树适宜存储什么样的数据? 树最适合用来表示( C ). A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 ...

  3. 2019 Power BI最Top50面试题,助你面试脱颖而出系列&lt;上&gt;

    距离4月还剩11天, 你是否还在投简历找工作而机会寥寥? 你是否还在四处奔波疲于面试而结果不意? ....... 知否知否, 天下武功唯快不破, 传说江湖有本Power BI 面试真香秘籍, 能助你快 ...

  4. .net 笔试面试总结(1)

    趁着在放假时候,给大家总结一点笔试面试上的东西,也刚好为年后跳槽做一点小积累. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正 ...

  5. 找工作笔试面试那些事儿(13)---操作系统常考知识点总结 ZZ 【操作系统】

    http://blog.csdn.net/han_xiaoyang/article/details/11285485 上一节对数据库的知识做了一个小总结,实际找工作过程中,因为公司或单位侧重点不一样, ...

  6. leetcode 刷500道题,笔试/面试稳过吗?谈一谈这些年来算法的学习

    想要学习算法.应付笔试或者应付面试手撕算法题,相信大部分人都会去刷 Leetcode,有读者问?如果我在 leetcode 坚持刷它个 500 道题,以后笔试/面试稳吗? 这里我说下我的个人看法,我认 ...

  7. java笔试面试第一天

    好久未曾启用我的博客,最近来上海找工作,想将笔试面试的过程做个记录,毕竟有总结才有提高嘛.今天算是笔试面试正式开始第一天吧,以下就是我的笔试总结(没有原题了,只有知识点): 笔试题1:java sta ...

  8. 找工作笔试面试那些事儿(8)---常问的CC++基础题

    这一部分是C/C++程序员在面试的时候会被问到的一些题目的汇总.来源于基本笔试面试书籍,可能有一部分题比较老,但是这也算是基础中的基础,就归纳归纳放上来了.大牛们看到一笑而过就好,普通人看看要是能补上 ...

  9. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

随机推荐

  1. IT公司100题-10-翻转句子中单词的顺序

    问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world ...

  2. jQuery回车事件

    有网就是好. 全局事件: document.onkeydown=function(e){ var ev=document.all?window.evevt:e; if(ev.keyCode==13){ ...

  3. springmvc 传递对象数组参数 property path is neither an array nor a List nor a Map

    Spring MVC 3: Property referenced in indexed property path is neither an array nor a List nor a Map ...

  4. 利用objc的runtime来定位次线程中unrecognized selector sent to instance的问题

    昨天遇到一个仅仅有一行错误信息的问题: -[NSNull objectForKey:]: unrecognized selector sent to instance 0x537e068 因为这个问题 ...

  5. Java 故障安全异常处理

    异常处理代码必须保证其故障安全机制,其中一条重要的规则如下: 在try-catch-finally块抛出的最后一个异常将会在调用堆栈中传递. 所有早期异常将会消失. 如果从一个catch或finall ...

  6. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  7. 初学python之路-day14

    一.带参装饰器 # 通常,装饰器为被装饰的函数添加新功能,需要外界的参数 # -- outer参数固定一个,就是func # -- inner参数固定同被装饰的函数,也不能添加新参数 # -- 可以借 ...

  8. Git 与 GitHub 入门级

    今天我们来搞一下Git 这东西虽然没啥搞头儿,但是开发当中还必须得会用,谁让你我都是苦逼的开发呢~~~~ 一.下载与安装 这玩意简单,给你赋个图片,自己研究一下~~~~ 1.官网:https://gi ...

  9. mysql 常用sql语句

    权限 撤销权限revoke all on *.* from 'root'@'192.168.0.197' ; 撤销权限revoke all on *.* from 'xx_db' @'%'; 给指定用 ...

  10. 【转】手动释放linux os buff/cache

    手动释放linux内存cache和脚本定时释放 标签: linuxcache脚本bufferwindows磁盘 2011-12-04 08:44 12799人阅读 评论(2) 收藏 举报  分类: l ...