kha*_*ieb 4 arrays go slice

我正在查看golang的堆包(https://golang.org/pkg/container/heap/)Priority Queue示例,并且遇到了这个:

type PriorityQueue []*Item
...
func (pq *PriorityQueue) Pop() interface{} {
    old := *pq
    n := len(old)
    item := old[n-1]
    item.index = -1 // for safety
    *pq = old[0 : n-1]
    return item
} 

当我开始玩这个代码以确保我理解它时,我试过:

item := *pq[0] // error

这给你类型*[] T不支持索引.但如果你这样做:

item := (*pq)[0] // all is well

这是类型断言吗?希望有人能解释这里发生的事情.

以下是一些快速显示的代码:https://play.golang.org/p/uAzYASrm_Q