I can’t find a terse and usable summary of the Go language. So here it is. I’ll make it all pretty at some point. In fact, it’s quickly getting not-terse, so I need to employ better HTML skills and tighten it up somehow.
Maybe what would work better is callouts for things that are “different from language X”, because 80% of Go
is quite like C, Python, Java etc.
Types
Kind |
Type |
bool |
true, false |
integer |
int, uint, uintptr, int8, int16, int32, int64, uint8, uint16, uint32, uint64 |
float |
float32, float64 |
complex |
complex64, complex128 |
byte |
alias for uint8 |
rune |
alias for int32 |
Operators
No operator overloading, so operators only work on basic types
Logical operators
Operator |
Meaning |
Examples |
! |
logical negation |
!a, a = !b |
&& |
conditional AND |
if a() && b() (short-circuit evaluation) |
|| |
conditional OR |
if a() || b() (short-circuit evaluation) |
Arithmetic operators (integer, float, complex, string)
Operator |
Meaning |
Examples |
+ |
sum |
1 + 1 == 2, "abc" + "d" == "abcd" |
Arithmetic operators (integer, float, complex)
- |
difference |
2 - 1 == 1 |
* |
product |
2 * 2 == 4 |
/ |
quotient |
3 / 2 == 1 , 5.0 / 2.0 == 2.5 |
Arithmetic operators (integer)
% remainder |
5 % 2 == 1 |
& bitwise AND |
6 & 3 == 2 |
| bitwise OR |
4 | 3 == 7 |
^ bitwise XOR |
7 ^ 2 == 5 |
&^ bit clear (AND NOT) |
``` 11 &^ 6 == 9 |
Arithmetic operators (integer OP unsigned integer)
<< left shift |
1 << 15 == 32768 |
>> right shift |
65536 >> 8 == 256 |
Reference
Documentation
The Go Programming Language Specification
Effective Go
How to Write Go Code
Golang Examples