here-we-go icon indicating copy to clipboard operation
here-we-go copied to clipboard

Contains hundreds of samples for learning Go.

here_we_go

Get Started

  • introduction
  • installation

Basics

  • hello
  • scopes
  • imports
    • simple
    • multiple
    • alias
  • lifecycle
  • comments
    • simple
    • multiline
    • documentation
  • semicolons
  • variables
    • data-types
    • declarations
    • conversions
  • constants
    • declarations
    • iota
  • operators
    • arithmetic
    • relational
    • logical
    • bitwise
    • assignment
    • pointers
  • strings
    • simple
    • concat
    • len
  • ifelse
    • simple
    • logical
    • nested
    • short
  • switch
    • simple
    • multiple
    • expression
    • fallthrough
    • short
  • loop
    • simple
    • break
    • continue
    • range
    • goto
  • arrays
    • simple
    • equality
    • assign
    • multi
    • key
  • slices
    • simple
    • append
    • expression
    • make
    • copy
  • maps
    • simple
    • delete
    • for
  • structs
    • simple
    • equality
    • embedding
  • interfaces
    • simple
    • conversion
    • complex
  • functions
    • simple
    • params
    • values
    • nested
    • closure
    • return
  • pointers
    • simple
    • func
  • errors
    • simple
    • func
    • custom
  • generics
    • simple
    • comparable
    • constraints
    • underlying
    • func
    • receiver
    • reflect
    • assertion

Concurrency

  • goroutines
  • channels
  • racecond
  • wait
  • atomic
  • context

Testing

  • simple
  • cases
  • sub
  • bench
  • example

Modules

  • simple
  • internal
  • external
  • third-party

Libraries

  • standard
    • fmt
      • print
      • scan
      • error
      • stringer
    • strings
      • check
      • info
      • conversion
      • builder
      • replacer
    • strconv
    • errors
    • time
    • path
      • path
      • filepath
    • regexp
    • reflect
    • bytes
      • check
      • info
      • conversion
      • buffer
    • encoding
      • json
      • base64
      • xml
      • hex
    • html
    • image
    • io
      • io
      • ioutil
      • fs
    • bufio
    • hash
    • crypto
      • md5
      • sha256
    • archive
      • zip
      • tar
    • net
      • net
      • http
      • mail
      • smtp
      • url
    • os
      • os
      • exec
      • signal
      • user
    • runtime
    • sort
    • sync
      • sync
      • atomic
    • math
      • math
      • rand
      • big
      • bits
      • cmplx
    • log
    • text
      • scanner
      • tabwriter
      • template
    • mime
    • compress
      • gzip
    • database
    • context
    • flag
    • container
      • list
      • ring
      • heap
    • unicode
    • go
      • constant
      • parser
      • scanner
      • doc
    • embed
  • config
    • viper
    • koanf
    • env
  • map
    • mapstructure
    • cast
  • validation
    • govalidator
    • validator
  • web
    • echo
    • gin
    • fiber
    • iris
    • mux
    • websocket
    • swag
    • redoc
  • log
    • logrus
    • zap
    • zerolog
  • serialization
    • jsoniter
    • gjson
    • msgpack
  • worker
    • gocron
    • gocron
    • jobrunner
    • cron
    • machinery
    • work
    • asynq
  • error-handling
    • errors
    • go-multierror
    • tracerr
    • errorx
    • errlog
  • messaging
    • amqp
    • kafka-go
    • confluent
    • redis
    • zeromq
    • sarama
    • emitter
    • eventbus
    • go-socket.io
    • melody
  • caching
    • bigcache
    • go-cache
    • ristretto
    • remember-go
    • freecache
    • redis
    • gomemcache
    • gocache
    • fastcache
    • groupcache
  • database
    • internal
      • badger
      • bbolt
      • goleveldb
      • buntdb
      • nutsdb
      • diskv
      • column
    • migration
      • migrate
      • sql-migrate
      • goose
      • pop
      • gormigrate
    • driver
      • pq
      • pgx
      • go-mssqldb
      • go-sqlite3
      • mongo-go-driver
      • redis
      • elastic
      • gocql
      • gocb
      • rethinkdb-go
    • builder
      • squirrel
      • goqu
      • gendry
      • greenleaf
    • orm
      • gorm
      • ent
      • db
  • auth
    • go-guardian
    • osin
    • goth
    • gorbac
    • jwt
  • network
    • fasthttp
    • gnet
    • gev
    • redeo
    • grab
    • peerdiscovery
  • http-client
    • resty
    • heimdall
    • sling
    • gentleman
  • dependency
    • wire
    • fx
    • dig
  • testing
    • testify
    • goconvey
    • ginkgo
    • go-sqlmock
    • go-cmp
    • httpexpect
    • gock
    • apitest
    • gofakeit
  • cli
    • cobra
    • cli
    • promptui
    • go-flags
    • tablewriter
    • banner
  • other
    • bleve
    • backoff
    • gobreaker
    • retry-go
    • fsnotify
    • health
    • stateless
    • diff
    • copystructure
    • hashstructure
    • uuid
    • shortid
    • litter

Design Patterns

  • creational
    • singleton
    • builder
    • abstract-factory
    • prototype
    • factory-method
  • structural
    • adapter
    • decorator
    • bridge
    • proxy
    • facade
    • composite
    • flyweight
  • behavioral
    • chain-of-responsibility
    • command
    • interpreter
    • iterator
    • mediator
    • memento
    • observer
    • state
    • strategy
    • template
    • visitor
    • specification
    • null-object

Data Structures

  • linked-list
  • queue
  • stack
  • binary-tree
  • trie
  • graph
  • set
  • dictionary
  • hash-table

Algorithms

  • search
    • linear
    • binary
    • jump
    • exponential
    • interpolation
    • ternary
  • sort
    • bubble
    • heap
    • insertion
    • quick
    • merge
    • selection
    • shell
    • radix
  • string
    • upper
    • lower
    • capitalize
    • split
    • reverse
    • search
    • duplicate
    • palindrome
    • pangram
    • anagram
  • other
    • round-robin
    • shortest-path
    • rotate-matrix
    • caesar-cipher
    • knapsack

Architectures

  • web
  • cron
  • producer
  • consumer
  • cli
  • client