Arrays golang中的可变getter函数
考虑go中的以下堆栈实现:Arrays golang中的可变getter函数,arrays,go,stack,Arrays,Go,Stack,考虑go中的以下堆栈实现: package main import "fmt" var a [10]int var top int = -1 func main() { printStack() push(1) printStack() push(23) printStack() pop() push(2) printStack() println("Top element is", getTop) } func p
package main
import "fmt"
var a [10]int
var top int = -1
func main() {
printStack()
push(1)
printStack()
push(23)
printStack()
pop()
push(2)
printStack()
println("Top element is", getTop)
}
func push(x int) {
top += 1
a[top] = x
}
func pop() {
top -= 1
}
func getTop() int {
return a[top]
}
func printStack() {
fmt.Println(top+1, "Stack: ", a, "Top", getTop)
}
问题:
println(“Top元素是”,getTop())
时,它打印出内存地址0x193928
,但当我调用println(“Top元素是”,getTop())
,它返回2
。返回2是有道理的,但我不明白为什么它返回内存地址?没有括号的getTop调用不应该是无效的吗getTop
是一个“函数指针”,它解释了正在打印的地址