如何理解这个函数中的这段代码:(*[2]unsafe.Pointer)(unsafe.Pointer(&x))[1]
func poolRaceAddr(x interface{}) unsafe.Pointer { ptr := uintptr(([2]unsafe.Pointer)(unsafe.Pointer(&x))[1]) h := uint32((uint64(uint32(ptr)) 0x85ebca6b) >> 16) return unsafe.Pointer(&poolRaceHash[h%uint32(len(poolRaceHash))]) }
有疑问加站长微信联系(非本文作者)

接口本身实现是一个结构体,内有两个指针:
学过C语言有指针的基本知识是很容易理解的,可见接口struct与[2]unsafe.Pointer在内存模型上是等价: