Go语言中文网 为您找到相关结果 111

golang 面试题

分享出来几个go面试题,都非常简单,如果您有一些开发时候使用到的小技巧欢迎评论。 目前我写出来11个(再更新一道题目),未来会不定期更新。。。 1、写出下面代码输出内容。 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } 2、 以下代码有什么问题,说明原因 type student struct { Name string Age...阅读全文

博文 2017-06-19 02:28:00 诺唯

Go 语言解面试题1

/* 比较一下 :http://blog.csdn.net/iilovetopview/article/details/43745059 go的运算效率逊于D(LDC 编译器0.15.1(LLVM3.6 ,MSVC64))。 用“数学公式”法解下题: 有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。 比如f(13)=6,现在f(1)=1,问下一个最大的f(n)=n的n是什么? */ package main import ("fmt" "time" "math" ) var aa map[int]int var Ac []int func main() { fmt.Println("(go Language) Please wait for some minutes,wi...阅读全文

博文 2015-06-17 23:02:37 Iilovetopview

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() { fmt.Println("打印后") }() panic("触发异常") } 考点:defer执行顺序 解答: defer 是后进先出。 panic 需要等defer 结束后才会向上传递。 出...阅读全文

博文 2017-09-12 03:49:17 梦朝思夕

golang 里面指针符号的*和&

先看一段代码先放一段代码,人工运行一下,看看自己能做对几题?package main import "fmt" func main() { var a int = 1 var b *int = &a var c **int = &b var x int = *b fmt.Println("a = ",a) fmt.Println("&a = ",&a) fmt.Println("*&a = ",*&a) fmt.Println("b = ",b) fmt.Println("&b = ",&b) fmt.Println("*&b = ",*&b) fmt.Println("*b = ",*b) fmt.Println("c = ",c) fmt.Println("*c = ",*c) fmt....阅读全文

博文 2017-02-10 10:21:28 ohgenlong

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 编译失败,因为type只能使用在interface 13.下面函数有什么问题? func funcMui(x,y int)(sum int,error){ return x+y,nil } 解析 考点:函数返回值命名...阅读全文

博文 2017-08-24 12:33:17 梦朝思夕

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 func main() { println(&bl,bl) println(&cl,cl) } 解析 考点:常量 常量不同于变量的在运行期分配内存,常量通常会被编译器在预处理阶段直接展开,作为指令数据使用...阅读全文

博文 2017-09-10 15:03:20 梦朝思夕

golang的指针到string,string到指针的转换

由于某个需求,需要如题的转换,废话不多说,直接贴代码了,其实挺丑了,备用了 func (this *Server) socketParserHandler(client *genTcpServer.Client, fullData []byte) { fmt.Println("original data is", client) strPointerHex := fmt.Sprintf("%p", unsafe.Pointer(client)) fmt.Println("connection is", strPointerHex) strPointerInt := fmt.Sprintf("%d", unsafe.Pointer(client)) fmt.Println("connectio...阅读全文

博文 2014-10-04 19:26:13 ziyouchutuwenwu

Go圣经-学习笔记入门-面试题

常问面试题 函数返回return XX, 是原子操作吗?(不是, 如果你看过雨痕老师的内存管理,就知道) 普通函数和闭包函数的区别有哪些?后者的应用场景在哪里?(闭包函数使用外部变量,是引用传递,注意:闭包函数运行时使用到该变量时,获取当时该变量的值。应用场景:闭包函数要比较小,有点像内联函数,用于defer等其他场景-关闭连接等) make和new有什么区别(make用于channel、map和slice的创建并初始化零值。new是指针对象。Effective Go中有个例子) var p *[]int = new([]int) // p=nil, 没有任何用处,只是分配了一个指针对象 var v []int = make([]int, 100) // 而make则分配了长度和容量等于10...阅读全文

博文 2017-10-22 00:30:04 cdh0805010

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

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))...阅读全文

博文 2017-09-18 09:30:01 mingbai

go语言指针符号的*和&

先看一段代码 先放一段代码,人工运行一下,看看自己能做对几题? package main import "fmt" func main() { var a int = 1 var b *int = &a var c **int = &b var x int = *b fmt.Println("a = ",a) fmt.Println("&a = ",&a) fmt.Println("*&a = ",*&a) fmt.Println("b = ",b) fmt.Println("&b = ",&b) fmt.Println("*&b = ",*&b) fmt.Println("*b = ",*b) fmt.Println("c = ",c) fmt.Println("*c = ",*c) fm...阅读全文

博文 2016-06-29 02:00:02 grimm

Golang面试题解析(四)

31. 算法 在utf8字符串判断是否包含指定字符串,并返回下标。"北京天安门最美丽" , "天安门"结果:2 解答: import ( "fmt" "strings" ) func main(){ fmt.Println(Utf8Index("北京天安门最美丽", "天安门")) fmt.Println(strings.Index("北京天安门最美丽", "男")) fmt.Println(strings.Index("", "男")) fmt.Println(Utf8Index("12ws北京天安门最美丽", "天安门")) } func Utf8Index(str, substr string) int { asciiPos := strings.Index(str, substr) ...阅读全文

博文 2018-07-02 12:24:42 梦朝思夕

golang常见面试题

1. 切片与数组对比 (1). 数组 数组是具有固定长度且拥有零个或者多个相同数据类型元素的序列。 数组的长度是数组类型的一部分,所以[3]int 和 [4]int 是两种不同的数组类型。 (2). 切片 切片表示一个拥有相同类型元素的可变长度的序列。 切片是一种轻量级的数据结构,它有三个属性:指针、长度和容量。 切块结构如下: type Slice struct { ptr unsafe.Pointer len int cap int } (3). 关系 一个底层数组可以对应多个slice,这些slice可以引用数组的任何位置,彼此之间的元素还可以重叠。 viso1.jpg 2. 结构体 3. interfac...阅读全文

博文 2018-06-28 21:34:44 百味纯净水

Go 语言解面试题1

用“数学公式”法解下题: 有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。 比如f(13)=6,现在f(1)=1,问下一个最大的f(n)=n的n是什么? func f(n int) int { c := 0 for i := 0; i <= n; i++ { c += count(i) } return c } func count(num int) int { c := 0 for n := num; n > 0; n = n / 10 { if n == 1 || n%10 == 1 { c += 1 } } return c } func main(){ t := time.Now() r := 0 for i := 1; i < 100000000; i++ { ...阅读全文

博文 2016-09-12 12:00:26 _insen

Go 语言解面试题1

根据http://studygolang.com/articles/3900改进 用“数学公式”法解下题: 有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。 比如f(13)=6,现在f(1)=1,问下一个最大的f(n)=n的n是什么? func f(n int) int { c := 0 for i := 0; i <= n; i++ { c += count(i) } return c } func count(num int) int { c := 0 for n := num; n > 0; n = n / 10 { if n == 1 || n%10 == 1 { c += 1 } } return c } func main(){ t := time.Now()...阅读全文

博文 2016-09-07 04:00:03 _insen

unsafe.Pointer 面试题,几乎没几个人答得对,有人知道答案的原因吗?

问 fun1 和 fun2 fun3分别输出什么,为什么? ```go func fun1() { a := 2 c := (*string) (unsafe.Pointer(&a)) *c = "44" fmt.Println(*c) } func fun2() { a := "654" c := (*string) (unsafe.Pointer(&a)) *c = "44" fmt.Println(*c) } func fun3() { a := 3 c := *(*string) (unsafe.Pointer(&a)) c = "445" fmt.Println(c...阅读全文

来自老司机golang面试官的经验分享:面试你很大几率会遇到的go语言面试题

正在准备golang面试的小伙伴,很荣幸,你能看到这篇文章,希望每一个看到这篇分享的小伙伴都能找到自己称心如意的工作!​ 编程语言类:Go是什么?使用Go编程有什么好处?Go支持类型继承吗?Go支持运营商超载吗?Go支持方法重载吗?Go支持指针算术吗?Go支持通用编程吗?Go是一个区分大小写的语言吗?Go中变量的静态类型声明是什么?Go中变量的动态类型声明是什么?你能在Go中的单个声明中声明多种类型的变量吗?如何在Go中打印变量的类型?什么是指针?break语句的目的是什么?继续声明的目的是什么?goto语句的目的是什么?解释'for'循环的语法。解释在Go中创建函数的语法。你能从函数中返回多个值吗?您可以将参数传递给方法的方式有多少?将参数传递给函数的默认方式是什么?Go中的函数作为值是什...阅读全文

博文 2019-04-10 23:34:41 QFdongdong

Golang面试题解析(四)

这是我整理的第四份Golang的面试题了,如果有同学遇到更好的题目欢迎给我反馈。 31. 算法 在utf8字符串判断是否包含指定字符串,并返回下标。 "北京天安门最美丽" , "天安门" 结果:2 解答: import ( "fmt" "strings" ) func main(){ fmt.Println(Utf8Index("北京天安门最美丽", "天安门")) fmt.Println(strings.Index("北京天安门最美丽", "男")) fmt.Println(strings.Index("", "男")) fmt.Println(Utf8Index("12ws北京天安门最美丽", "天安门")) } func Utf8Index(str, substr string) in...阅读全文

博文 2018-03-30 12:33:08 梦朝思夕

【面试题】计算某个整数 1 的位数,即 Hamming weight

编写一个函数,接收一个无符号整数,返回它拥有的“1”位数(也称为汉明权重,[Hamming weight](https://en.wikipedia.org/wiki/Hamming_weight))。 例如,32 位整数 '11' 的二进制表示为 `00000000000000000000000000001011`,所以函数应该返回3。 ```go // hammingWeight 计算 Hamming weight func hammingWeight(n uint32) int { } ``...阅读全文

【面试题】联合求和

给定一个候选数字数组 (C) (不含重复项) 和目标数字 (T),在 C 中找到所有唯一的组合,使得组合中的数之和为 T。 C 中的同一个数字可以无限制重复使用。 注意: - 所有数字,包括目标数字,都是正数 - 结果数组中不能包含重复的组合 例如:给定一个候选数组: [2, 3, 6, 7] 和 目标数字 7, 结果数组如下: ``` [ [7], [2, 2, 3] ] ``` Go 函数签名如下: ```go func combinationSum(candidates []int, target int) [][]int { } ``...阅读全文

【面试题】从链表尾部算起,删除第n个节点

给定一个链表,从链表尾部算起,删除第n个节点,并返回链表头节点。 例如: > 给定列表:1->2->3->4->5,和 n = 2。 > 从尾部算起,删除第2个节点后,链表变为:1->2->3->5。 说明: 1. 给出的 n 总是有效的,比如不会出现负数。 2. 尽可能使用 O(n) 算法实现。 Go 示例定义: ```go /** * 定义一个单链表: * type ListNode struct { * Val int * Next *ListNode * } */ func removeNthFromEnd(head *ListNode, n int) *ListNode { } ...阅读全文

39级台阶(竞赛题,Go语言实现)

问题重现: 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案。 递归解决方案(Go语言实现) package main import ( "fmt" ) /*递归核心 作者:天之 *@i表示爬楼梯次数 *@now表示当前所在楼层 *@top表示楼梯总层数 *@*count计满足条件的数 */ func f(i, now, top int, count *int) { if now == top { //最后必须迈右脚,0迈左脚,1...阅读全文

面试头条被拒,一年后逆袭拿到offer

文链接;https://mp.weixin.qq.com/s/h406uQEKFhwrepDF3b4hyw 一、印象中的头条 1.老板张一鸣跟我是福建老乡,龙岩市在我朋友说来就是山沟沟,能走出美团王兴和头条张一鸣让我卯足了去龙岩吃特产老鼠干的欲望。 2.给的钱多,笔试也贼难。参加过头条笔试的同学都知道,头条笔试可以笔试三次,就是不论你有没有参加都有三次机会。笔试就5道算法题,两个小时,去年第一次看到算法题就自闭了,第一次挂了。第二次又很认真地做,做到一半放弃了。没过几天又邀请我做第三次,有一种强行被侮辱的感觉。 3.内推被拒。正如我标题所说,简历被拒。去年3月份在知乎上看到一个头条大佬说可以内推春季实习,于是私信并发了简历给他。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。(打扰了)...阅读全文

博文 2019-06-27 00:32:45 架构师的摇篮

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() { fmt.Println("打印后") }() panic("触发异常") }考点:defer执行顺序 解答: defer 是后进先出。 panic 需要等defer 结束后才会向上传递。出现pani...阅读全文

博文 2018-07-02 12:20:05 梦朝思夕

最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件

​一面:HashMap实现原理,ConcurrentHashMap实现原理红黑树,为什么允许局部不平衡TCP,UDP区别,为什么可靠和不可靠一次HTTP请求的全过程,包括域名解析、定位主机等TCP三次握手MySQL事务是什么?四大特性,四大隔离级别ConcurrentHashMap和Hashtable区别spring IOC和AOP,以及各有什么优点有哪几种常用的线程池什么情况下使用Runnable和Thread创建线程,Runnable和Callable的区别线程方法中的异常如何处理,副线程可以捕获到吗synchronized和锁的区别,什么情况下使用synchronized和ReentrantLockJVM的对象分配在哪个区,Class对象分配在哪个区二面:常用的设计模式介绍:单例模式、...阅读全文

博文 2018-09-19 15:20:04 Java_fenxiang

一道经常考的面试题

前段时间在找工作,也遇到一些不错的面试题,其中有一道很常见,记录一下,里面还有一点搞不明白的: 下面两段程序的输出是什么? 第一段: 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 < 10; i++ { wg.Add(1) go func(n int) { fmt.Println(n) wg.Done() }(i) } wg.Wait() } 很多面试题解析里面说第一段的10个g...阅读全文

博文 2019-09-06 10:02:56 fox_lin

一篇文章带你搞定经典面试题之扔鸡蛋问题

leetcode-0887_鸡蛋掉落 概述 扔鸡蛋问题是一道非常经典的面试题,Google、百度、腾讯等大厂都使用过,此题有多个变体版本,扩展性很强,解决思路有多种,下面一起来探讨吧! 标准版面试题 题目描述 有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。 问:如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点? 举例: 举个栗子,最笨的测试方法是什么样呢? 把其中一个鸡蛋从第1层开始往下扔。 如果在第1层没碎,换到第2层扔 如果在第2层没碎,换到第3层扔 ....... 如果第59层没碎,换到第60层扔 如果第60层碎了,说明不会摔碎的临界点是第59层 在最坏情况下,这个方法需要扔100次。 方法一:二分...阅读全文

博文 2018-09-12 10:34:40 tomorrowwu

去哪儿面试题 (Golang实现)多线程顺序输出1-75

package main import ( "fmt" "sync" "time" ) var waiter sync.WaitGroup func print5(i int) { j := i for j < i+5 { fmt.Println(j) j++ } waiter.Done() } func main() { fmt.Println("Start print 75") waiter = sync.WaitGroup{} waiter.Add(15) for i := 1; i < 75; i += 5 { go print5(i) time.Sleep(1 * time.Nanosecond) } waiter.Wait() fmt.Println("End print 75"...阅读全文

博文 2019-06-06 19:32:39 FredricZhu

收集的前端面试题

收集的一些前端面试题 从面试题发现不足,进而查漏补缺,比通过面试更难得 1 BAT及各大互联网公司2014前端笔试面试题--Html,Css篇 2 BAT及各大互联网公司2014前端笔试面试题--JavaScript篇 3 javascript面试题 4 javascript puzzlers 5 9个JQuery和5个JavaScript经典面试题 6 前端开发面试题 7 如何面试前端工程师:GitHub 很重要 8 44 个 JavaScript 变态题解析 9 如何通过饿了么 Node.js 面试 10 Front-end-Developer-Interview-Questions 11 轻课堂JavaScript面试题 12 前端开发面试题 13 2016腾讯前端JavaScript...阅读全文

博文 2017-09-06 09:34:53 三井寿

几个golang面试题及解析

一、以下代码的输出内容为12345678910111213package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常")} 答案 1234打印后打印中打印前panic: 触发异常 解析 考查defer和panic组合的情况,在有panic时,会先执行defer然后再把恐慌传递出去。 更多相关内容可查看defer常见的坑以及官方文档描述。 二、以下代码有什么问...阅读全文

博文 2018-05-17 09:24:38 马谦的博客

拼多多Java面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

在这个技术人才饱满的时代,面试基本上是很重要的一关了,而这个时候就要懂得HR看中你的哪些方面了,技术、人品、经验。能否从容的应对面试官所给出的道道难题,是能否成功拿到offer的重点!!!​拼多多Java一面简短自我介绍事务的ACID,其中把事务的隔离性详细解释一遍脏读、幻影读、不可重复读红黑树、二叉树的算法平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁?jdk1.8中,对hashMap和concurrentHashMap做了哪些优化如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值synchronized 和 ReentranLock的区别?ThreadLocal?应用场景?Java ...阅读全文

博文 2019-05-23 16:27:48 Codilove

go-bisection

最近写作业,遇到计算量很大的一道数学题,感觉还是喜欢go的所以第一个想到的是用go实现一下,省的手算了。 题目大概是 用bisection的方法find root of f(x)=x^(1/3)+3,需要几步? 把题目说清楚还有一个目的是,代码里有一句是注释掉的,root那句,需要注意,现在是要推算x^(1/3)的,所以得假设你现在是得不到x^(1/3)的。代码如下:目前代码有个问题,答案是14,通过一个公式得到,但运行代码得到的是15,目前想到的原因是,第一个error是直接就在的,不该count的,但是是强行解释,所以也可能是其他原因,先放这儿,有大牛欢迎来讲讲。还有一点是代码里也包含了一点regula-Falsi方法的实现,因为并不需要得到迭代次数,所以就只是在main里做了一点计算(...阅读全文

博文 2017-03-05 19:57:32 暗黑破坏球嘿哈

【golang基础】go语言中的方法和interface的实现

我们先来看一道面试题:以下代码能编译过去吗?为什么? package main import ( "fmt" ) type People interface { Speak(string) string } type Stduent struct{} func (stu *Stduent) Speak(think string) (talk string) { if think == "bitch" { talk = "You are a good boy" } else { talk = "hi" } return } func main() { var peo People = Stduent{} think := "bitch" fmt.Println(peo.Speak(think)...阅读全文

博文 2018-03-30 16:34:42 wind5o