结构体上的 go 方法接收指针引用,进行一些修改并返回相同的指针。该结构具有相同结构的嵌套引用:当使用值调用追加方法时,由于某种原因它会丢失以前的值。
package main
import (
"fmt"
)
type Node struct{
next *Node
val int
}
func newNode(val int) (*Node){
n := Node{
val: val,
}
return &n
}
func (n *Node) append(val int) (*Node){
for n.next != nil {
n = n.next
}
n.next = newNode(val)
return n
}
func (n *Node)printList(){
for n != nil {
fmt.Printf("%d,", n.val)
n = n.next
}
fmt.Println()
}
func main() {
n := newNode(3)
n.printList()
n = n.append(4)
n.printList()
n = n.append(5)
n.printList()
n = n.append(6)
n.printList()
}
output:
3,
3,4,
4,5,
5,6,
我本来期待 3,4,5,6,- 可能是我完全错过了一些基本知识。如果您有一些意见,我们将不胜感激。
https://play.golang.org/p/-zDH98UNFLa
当我修改追加方法时,我得到了预期的结果,但没有返回任何内容。
手掌心
小唯快跑啊
回首忆惘然
相关分类