Chaos' Blog

go每日一题(不间断更新))

2020-09-22

此篇为微信群go每日一题问题及答案收录
不间断更新

20200923

1
问:Go语言的共享并发机制有几种实现方式,分别是什么?并说一下各自的区别?
1
答:Go语言的共享并发机制实现方式有两种,分别是sync.Mutex和sync.RWMutex,二者的区别是前者是互斥锁,后者是共享锁。

20200922

1
2
3
4
5
6
7
8
9
问:type person struct{
name string
age uint
}
frank := &person{
name: "frank",
age: 18,
}
请问frank.age和(*frank).age有什么区别?
1
答:在Go语言中,指向切片的指针和指向数组的指针,Go语言提供了自动解引用的特性。所以题目中的两个语句读取指针切片的字段是没有区别的,不带解引用符号(*)的方式更便捷一些。

20200921

1
问:如果多种潜入类型都实现了同名的方法,那么Go编译器会报错吗?
1
答:如果多个嵌入类型具有同名方法,并且这些方法被程序调用了,那么Go语言将提示命名冲突。

20200920

1
问:数组和切片在被赋值或者被传递至函数时,两者有什么不同之处?
1
答:数组会产生相应的副本,切片将与新变量共享相同的底层数据。

20200918

1
2
问:var data chan interface{}
声明了一个channel 变量data,请问该变量可以直接使用吗?为什么?
1
2
答:不可以直接使用。
声明的channle变量,需要使用内置函数make()实例化channel。否则会阻塞程序,或产生死锁。

20200917

1
问:请说出两个能够将整数转换为字符串的函数,和一个能够将字符串转换为整数的函数。
1
2
答:整数转换为字符串的函数:strconv.Itoa()和fmt.Sprintf()
字符串转换为整数的函数:strconv.Atoi()

20200915

1
问:Go语言中,每个goroutine占用多少内存,GC会不会回收被丢弃的goroutine?
1
答:Go语言中,每个goroutine占用几千字节内存,GC不会回收被丢弃的goroutine,而是一直存在,直到进程退出。

20200913

1
问:存储一个uint8类型的值需要用多少字节?
1
答:1字节

20200912

1
问: 一个float32类型的单精度浮点数需要占用多少字节内存?
1
答:4个字节
Tags: GO