当我运行以下代码时,出现编译器错误,指出不支持索引。
txs := make([]string, 2)
txs[0] = "A"
p := &txs
fmt.Println(p[0])
我试图理解为什么不支持在 slice 指针上建立索引。我可以将指针变量复制到值变量,然后进行索引,但我很想知道为什么该语言不支持 slice 指针的索引;这样做会非常方便。还是有一种我不知道的方法?请让我知道您的想法。
最佳答案
写(*p)
来解引用指针p
:
package main
import (
"fmt"
)
func main() {
txs := make([]string, 2)
txs[0] = "A"
p := &txs
fmt.Println((*p)[0])
}
Playground :https://play.golang.org/p/6Ex-3jtmw44
输出:
A
关于pointers - 为什么在 golang 中不允许对 slice 指针进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38468258/