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