As you know generics will come to go 1.18 and one of the major drawbacks in go was implementing data structure because of the lack of generics. I implemented a small generic linked list in go and I think we can start having brand new data structures in Go.
First of all you need to install the master version of golang
and for this you can use gotip
.
go install golang.org/dl/gotip@latest
gotip download
then you can use the gotip
command as your normal go
command.
func main() {
l := list.New[int]()
l.PushFront(10)
l.PushFront(20)
l.PushFront(40)
fmt.Println(l)
}
func main() {
l := list.New[string]()
l.PushFront("hello")
fmt.Println(l)
}
func main() {
l := list.New[int]()
l.PushFront(10)
l.PushFront(20)
l.PushFront(40)
l.PushFront(42)
fmt.Println(l)
s := l.Filter(func(i int) bool {
return i%10 == 0
})
fmt.Println(s)
}