我正在通过一门课程"掌握编程"由" Mina Andrawos"。以下改编的代码未按预期执行:
a)main.go - 包主要
import (
"fmt"
"interfaces/linklist"
)
func main() {
node := linklist.NewNode()
node.SetValue(1)
fmt.Println("Get Value: ", node.GetValue())
}
b)linklist.go - 包链表
// Node struct
type Node struct {
next *Node
value int
}
// SetValue function
func (sNode Node) SetValue(v int) {
sNode.value = v
}
// GetValue function
func (sNode Node) GetValue() int {
return sNode.value
}
// NewNode constructor
func NewNode() Node {
return Node{}
}
问题: 代码" sNode.value = v" in" linklist.go"从未被执行过。程序输出" 0"而不是" 1"。在调试模式下," sNode.value = v"在" node.SetValue(1)"时跳过代码在主函数中执行。
必须做什么才能让程序打印"获取价值:1"?
环境: