跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 分享一次 golang 的面试题,最后一题求解答
未分類
15 5 月 2020

分享一次 golang 的面试题,最后一题求解答

分享一次 golang 的面试题,最后一题求解答

資深大佬 : yngzij 6

分享一下 Golang 面试的笔试题目,前两题自己写的答案在后面,第三题没有解答出来。

检测一个函数,当它在 3 秒内还没有完成就打印错误。

使用 slice,mutex,channel,goroute 编写输出 100 次的随机数的缓冲队列。

编写可以扩容收缩的循环数组,支持添加和删除。(求解答)

package main  import (  "log"  "time" )func main() {sig := make(chan interface{})  go func() {getResult()   sig <- struct{}{}  }()  for {   select {   case <-sig:    log.Println("ok")   case <-time.After(time.Second * 3):    log.Println("error")   }   break  } }  func getResult() {time.Sleep(time.Second * 2) } 
package main  import (  "log"  "math/rand"  "sync"  "time" )  var mutex sync.Mutex var list []int  func main() {sig := make(chan interface{}, 100)  for i := 0; i < 100; i++ {go insert(sig)  }  for i := 0; i < 100; i++ {<-sig}  for i, v := range list {log.Println(i+1, v)  } }  func insert(sig chan interface{}) {mutex.Lock()  r := rand.New(rand.NewSource(time.Now().UnixNano()))n := r.Intn(100)  list = append(list, n)  mutex.Unlock()sig <- struct{}{}}  

大佬有話說 (4)

  • 資深大佬 : teawithlife

    现在的公司,出笔试题可以这么随意吗?感觉像作业多些哦
    第一个题目还可圈可点,第二个题目为啥规定要用 slice,mutex,不是一个 channel 的事情吗?
    第三题就是循环队列,要点就是头尾两个指针和取模操作,处理好边界条件就好了,但是这个“支持添加和删除”太不严谨了

  • 主 資深大佬 : yngzij

    @teawithlife #1 我当时也问了,为啥必须使用,他说为了考察基础。

  • 資深大佬 : Acoolda

    不能好好贴一下代码吗?

  • 主 資深大佬 : yngzij

    @Acoolda #3 是 v2 的编辑器自己格式化了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具