pointers - 为什么在 golang 中不允许对 slice 指针进行索引

标签 pointers go slice

当我运行以下代码时,出现编译器错误,指出不支持索引。

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/

相关文章:

python - 在 Python 中切掉列表中每个(列表)元素中的第一个元素

c - 使用 fgets() 从文件读取然后在另一个函数中使用信息

将复杂类型指针复制到 C 中的另一个指针

c - 这个指针应该这样操作吗?基础C

date - GoLang的时间。日期在一个月内的有效日期之后的几天内不会引发错误

python - 将 Python 中的字符串拆分为长度恒定但右对齐的 block

c++ - 神秘的 C++ "thing"(函数指针)

http - 在同一包中的两个源文件之间共享变量

parsing - Go 解析器未检测到结构类型的文档注释

python - <for> 循环的切片函数