拧壶冲
weixin_慕运维6503109
只要一个类型,实现了一个接口的任意方法,都能隐式转换为该接口类型
可以看下具体的代码
// io.go
// io.Writer 接口定义
type Writer interface {
Write(p []byte) (n int, err error)
}
// file.go
// File结构体write方法
func (f *File) Write(b []byte) (n int, err error) {
// .......
}
qq_追心_
后面会有,n判断buffer里是否还有数据,之后会对没有的情况做处理
慕工程3002471
是覆盖了,覆盖了8个字节,刚好是一个int。然后这个buffer转成int,并由out channel 发送出去
慕工程3002471
慕工程3002471
查了些资料 有的网上写的是int在64位操作系统也只占4 byte,所以有点懵。不过这里应该是默认的int_64所以是8字节
lizhi_duan
向channel写入或者读取数据都是阻塞的,不开goroutine的话代码上面的代码就阻塞在 out <- r , 当然就死锁了。开gouroutine的话应该不会吧,你可以贴下代码看看
lizhi_duan
ctrl+alt+M
qq_半人半心_1
没有flush吧?
helloei
defer的效果是从最后向前依次执行需要defer的语句,也就说需要defer操作的引用都会被存储在一个栈空间。
在栈空间里file指向的地址还是不同的地址,因此可以解决这个问题。
猜测是这样,并没有实际证据。
Glxe_ge
老师讲了 可能出错了 但是还读到了几个字节 不能扔掉
mi杨
显式类型转换:uint64,全部作为无符号整型处理
吴文豹
快捷键的名字叫extract -> variable
MarcusDexter
快捷键的名字叫extract -> method