golang程序没有按预期执行

时间:2017-04-17 10:20:44

标签: go

我正在通过一门课程"掌握编程"由" 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"?

环境

  • 操作系统:Ubuntu 16.04 / 64bit
  • GO版本:1.8.1
  • 执行程序的命令:go run main.go

0 个答案:

没有答案