programming

Golang lint and go vet: golangci-lint, formatting, and nolint:gosec

Golang linting with go vet and golangci-lint; go lint command meaning versus go vet; golang linter setup; nolint:gosec and targeted nolint directives; gofmt goimports; golint deprecated.

Tuan Nguyen4 min read
programming

Golang get IP address: local IPv4/IPv6, hostname, and Linux interfaces

Golang get ip address and golang get local ip: net.InterfaceAddrs and Interfaces for linux get local ip, golang get hostname with LookupHost, go get ip address heuristics, golang get local ip address without loopback, …

Deepak Prasad4 min read
programming

Golang URL query parameters: url.Values, encoding, and reading requests

Golang url values and url.Values.Encode to add query parameters; golang http request parameters from r.URL.Query; golang url parameters with Set and Add; avoid raw fmt.Sprintf for untrusted strings. Related HTTP overview …

Tuan Nguyen3 min read
programming

Golang HTTP POST JSON: send a post request with a JSON body in Go

Golang http post json and golang post request with json body using net/http: http.NewRequest with bytes.Reader, Content-Type application/json, json.Marshal, and a minimal server decode with json.Decoder; httptest example …

Tuan Nguyen4 min read
programming

Golang performance and speed: how Go compares and why it is fast

Golang performance versus Java, Python, Node.js, and C; why the Go language feels fast for servers; golang performance benchmark with go test; golang closure performance basics; links to official docs and community …

Tuan Nguyen6 min read
programming

Go pass by value or reference: pointers, slices, and maps in Go

Is go pass by value or reference: Go passes arguments by value; golang pass by reference means passing pointers. go pass by value for structs; slices and maps alias shared data. golang pass by reference or value, golang …

Tuan Nguyen4 min read
programming

Golang print struct: fmt verbs, pretty JSON, and type names

Print struct golang and go print struct with fmt.Printf verbs (%v %+v %#v), golang pretty print struct via encoding/json, golang print type of variable with %T and reflect.TypeOf, fmt.Stringer, and optional go-spew.

Tuan Nguyen4 min read
programming

Golang queue: FIFO slice, container/list, and channels

Golang queue implementation for FIFO: slice append and reslice, golang fifo queue memory notes, container/list, buffered channel go queue, generics helpers, peek and empty checks, concurrency hints, and links to channels …

Tuan Nguyen5 min read
programming

Golang prompt and interactive CLI: stdin, passwords, promptui, survey

Golang interactive CLI and golang prompt for input with bufio; golang.org/x/term ReadPassword with os.Stdin.Fd; promptui golang and survey; go-prompt (c-bata); notes on TTYs and cross-platform terminals.

Tuan Nguyen5 min read
programming

Golang read file, update in place, and overwrite safely

Golang read file and golang read entire file with os.ReadFile; golang open file and os.OpenFile flags; golang overwrite file and append; update one field of big file golang via temp file rename or streaming; WriteAt …

Tuan Nguyen6 min read
programming

Golang multiline string and reading multiple lines from stdin

Golang multiline string with raw backticks and escapes; golang read stdin and golang read line from stdin using fmt.Scan tokens, bufio.Reader ReadString, and bufio.Scanner; EOF and token size notes; not golang multiline …

Tuan Nguyen5 min read
programming

Golang random bool and random boolean: math/rand and crypto/rand

Golang random bool and golang random boolean with math/rand Intn and Float64, golang rand local source for tests, random boolean generator patterns in Go, and crypto/rand when you need unpredictable bits—not Python or …

Tuan Nguyen3 min read
programming

Delete keys from a map in Go with delete()

Remove entries from a map in Go with the built-in delete(map, key); deleting a missing key is safe; use the comma-ok form first when you want to log or branch on absent keys.

Tuan Nguyen2 min read
programming

Golang user input: Scan, Scanf, and bufio for stdin

How to take input in golang and golang get user input from stdin: fmt.Scan Scanln Scanf for typed tokens, golang read input with bufio; go read user input and how to get user input in go with line-based reads; input …

Deepak Prasad3 min read
programming

Golang print type: %T, reflect, and type switches

Go print type and golang print type of variable with fmt %T; golang get type via reflect.TypeOf and Kind; pointers, interface{}, and nil; type switches; golang print object as dynamic concrete type.

Tuan Nguyen4 min read
programming

Golang panic and recover: defer, stack unwinding, and catch-style recovery

Golang panic and go panic: how unwinding works with defer; golang recover from panic and go recover panic in a deferred function (go catch panic / golang catch panic pattern); panic vs errors and os.Exit; logging with …

Deepak Prasad4 min read
programming

Golang math pow: power in Go with math.Pow

golang math pow and go math.pow with math.Pow(x,y float64); golang power examples, integer casts and overflow pitfalls, special cases from pkg.go.dev, and alternatives for exact integer exponentiation.

Tuan Nguyen4 min read
programming

Golang pad string and numbers: fmt padding, leading zeros, and floats

Golang string padding and go padding with fmt.Printf and Sprintf: golang pad string with spaces or zeros, golang format int with leading zeros, golang format float width and precision; optional golang.org/x/text/number.

Tuan Nguyen4 min read
programming

Golang get current directory, cwd, and path: os.Getwd, Getwd, Executable

Golang get current directory and golang get cwd: os.Getwd for golang get current working directory and golang get pwd, golang print current directory, golang get current path with filepath.Abs, go get current directory …

Tuan Nguyen4 min read
programming

go-memdb and go memdb: in-memory database for Golang

HashiCorp go-memdb (mem db): golang in memory database with MVCC, schema and id primary index, Txn insert query LowerBound Get First, delete and DeleteAll; not SQL or DynamoDB.

Tuan Nguyen6 min read
programming

Go defer keyword: LIFO cleanup, evaluation rules, and loops

Use golang defer to schedule a function call when the surrounding function returns; arguments are evaluated immediately; multiple defers run in LIFO order; avoid defer in tight loops without an inner function.

Antony Shikubu4 min read
programming

Golang garbage collection: GC, heap, GOGC, runtime.GC, and tuning

Golang garbage collection and golang gc: go garbage collector basics, heap in golang and HeapAlloc, golang force garbage collection with runtime.GC, GOGC and GOMEMLIMIT, gctrace, pprof, and garbage collection in go for …

Deepak Prasad15 min read
programming

Default and optional parameters in Go (patterns, not language syntax)

Go has no default parameter values at compile time; use zero-value checks, variadic trailing arguments, a struct of fields, or a map[string]any with defaults applied in the function body.

Tuan Nguyen3 min read
programming

Create Nested Directories in Go (os.Mkdir, os.MkdirAll, mkdir -p)

Create nested directories in Go with os.Mkdir per level, os.MkdirAll for a full path in one call, filepath.Join for portable paths, optional os.Stat guards, or exec.Command mkdir -p when shell semantics are acceptable.

Deepak Prasad3 min read
programming

Golang math package: MaxInt32, MinInt64, Pi, and float64 APIs

Golang math package and pkg.go.dev math docs: math.MaxInt32 math.MinInt32 math.MaxInt64 math.MinInt64 constants, math.MaxInt math.MinInt, Pi and float64 functions, quadratic example, math/big math/bits math/cmplx …

Tuan Nguyen4 min read
programming

Copy or Clone a Map in Go (Shallow vs Deep)

Copy or clone a map in Go: a new map with a range loop duplicates keys but may share slice, map, or pointer values (shallow copy); duplicate nested data with copy(), JSON marshal/unmarshal, or type-specific logic for a …

Tuan Nguyen4 min read
programming

Golang length of map: len, nil maps, and counting nested values

Golang length of map and golang map len with builtin len; golang get length of map and go length of map for key count; nil map length zero; golang size of map vs counting nested slice values with range.

Tuan Nguyen3 min read
programming

Copy Files in Go While Preserving Permissions

Copy a file in Go with os.Open, io.Copy to os.Create, then os.Chmod from os.FileInfo.Mode; or use os.ReadFile and os.WriteFile with the source mode; os.Rename moves within a filesystem rather than copying.

Deepak Prasad3 min read
programming

Golang hello world: first program, go mod init, and go run

Golang hello world and go hello world: hello world golang program with package main, hello world in golang and go language hello world using fmt.Println, golang hello world example with go mod init, go run and go hello …

Tuan Nguyen4 min read
programming

Golang packaging: modules, package structure, and naming conventions

Golang packaging with Go modules and golang package structure; golang package naming convention and exports; import paths, internal, cmd layout; golang package design and adding dependencies—go packages tutorial style.

Tuan Nguyen5 min read