From 5fe2f0aa7f75ef6879e29e3749f902e4e3522cb5 Mon Sep 17 00:00:00 2001 From: Jian Han Date: Sat, 14 Apr 2018 22:28:24 +1000 Subject: [PATCH] [DEV] Completed example --- phrasebook/ch04/generic_data_structure/main.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/phrasebook/ch04/generic_data_structure/main.go b/phrasebook/ch04/generic_data_structure/main.go index 0a38f18..ce44821 100644 --- a/phrasebook/ch04/generic_data_structure/main.go +++ b/phrasebook/ch04/generic_data_structure/main.go @@ -3,8 +3,8 @@ package main import "fmt" type stackEntry struct { - next *stackEntry - value interface{} + Next *stackEntry + Value interface{} } type stack struct { @@ -13,8 +13,8 @@ type stack struct { func (s *stack) Push(v interface{}) { var e stackEntry - e.value = v - e.next = s.top + e.Value = v + e.Next = s.top s.top = &e } @@ -22,15 +22,19 @@ func (s *stack) Pop() interface{} { if s.top == nil { return nil } - v := s.top.value - s.top = s.top.next + v := s.top.Value + s.top = s.top.Next return v } +func (s *stack) GetTop() *stackEntry { + return s.top +} + func main() { s := &stack{} s.Push("one") s.Push("two") s.Push("three") - fmt.Printf("%#v", s) + fmt.Printf("%#v", s.GetTop().Next) }