diff options
author | Jasper Ras <jras@hostnet.nl> | 2025-07-30 10:37:52 +0200 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2025-07-30 10:37:52 +0200 |
commit | 260eef7f245f62bb03e463d749520c83861dcf42 (patch) | |
tree | b6082e236e47f0db84fc971d9da9d672bebc5bfb /The Go Programming Language - A Donovan, B Kernighan - 2015.md | |
parent | 716fa9e840b7c3063574316fd7e0246a2bcb9332 (diff) | |
parent | 8bde51ba29aa23d1b6e01826b6af720b4256bd78 (diff) |
Merge remote-tracking branch 'origin/main'
Diffstat (limited to 'The Go Programming Language - A Donovan, B Kernighan - 2015.md')
-rw-r--r-- | The Go Programming Language - A Donovan, B Kernighan - 2015.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/The Go Programming Language - A Donovan, B Kernighan - 2015.md b/The Go Programming Language - A Donovan, B Kernighan - 2015.md new file mode 100644 index 0000000..f0c7389 --- /dev/null +++ b/The Go Programming Language - A Donovan, B Kernighan - 2015.md @@ -0,0 +1,27 @@ +Go compiles into native machine code. +Go handles Unicode natively thus any character can be used in a string. +Divided into packages, where a package is sort of a library, except for main which defines an executable. +Import declarations **must** follow the package declaration. +Function declarations: `func <name> (<param list>) (<result list>)`. No semicolons, unless multiple statements on 1 line. +`gofmt` mandatory. `goimports` (`golang.org/x/tools/cmd/goimports`) manages imports. +Slices are dynamically sized arrays that can be accessed `s[i]` or a subset can be taken `s[i:j]`. Indexing: half-open (starts at 0). `s[i:j]` yields i through j-1. Either can be omitted. + +Convention: comment describing package preceding package declaration. + +Variables initialised to "zero value".7689 +String concatenation via `+` char. +Supports assignment operators, e.g `+=`, `*=` etc +Short-hand variable declaration requires no type, it is inferred of the value `:=` **only allowed in a function** + +For-loop structure: +``` +for initialization; condition; post { + // code +} +``` +Either part can be left away with different semantics. +All parts gone: loop forever. +Only condition is like a while x == true; +`range` keyword to loop over a slice or array with `for index, arg := range slice` + +`_` is the blank identifier, thus above if we don' need the index we can put `_`. |