因为我在将指针添加到接口数组后无法恢复指针的值



我正在学习"指针"。我可以正常使用"&"打印内存位置和变量值。和"*";操作符。问题是,当内存地址在接口数组内时,我无法打印值。我可以提取内存位置,但不能提取值。怎么做?


package main
import (
"fmt"
)
func main() {
var name string = "Name User"

var pointer *string
var array []interface{}



pointer = &name
array = append(array, &name)



fmt.Println("Memory address: ",  pointer)   // OK
fmt.Println("Variable value: ", *pointer)   // OK



fmt.Println("Memory address: ",  array[0])  // OK
fmt.Println("Variable value: ", *array[0])  // ERROR

}

埃罗:


invalid indirect of array[0] (type interface {})

看了JimB建议的链接后:

  • 类型断言;
  • 文档。

    变化如下:
fmt.Println("Variable value: ", *array[0].(*string))

相关内容

  • 没有找到相关文章

最新更新