1.请写出下面输出
答案:
nil切片和空切片指向的地址不一样。
nil切片引用数组指针地址为0(无指向任何实际地址)
空切片的引用数组指针地址是有的,且固定为一个值。
s1 data: 0
s2 data: 823893438493400
s3 data: 823893438493400
s1:s2 false
s2:s3 true
2.以下代码如果不执行resp.close会内存泄漏吗?会泄露几个goroutine
答案参考: https://blog.csdn.net/qq_37102984/article/details/129326866
3. 编写一个单例模式
4.以下这段代码有什么问题
package main
import (
"fmt"
"time"
)
var ch chan int
func getNum() int {
for i:=17;i<50000;i+=17 {
ch <- i
time.Sleep(time.Millisecond)
}
close(ch)
}
func main(){
ch = make(chan int)
timer := time.After(time.Minute)
go getNum()
var count int
for{
select{
case num := <-ch:
if(num % 38 == 0){
count++
if(count >= 3){
break
}
}else{
break
}
case <-timer:
fmt.Println("chaoshile")
break
}
}
}
5. 算法