Go Concepts - Lexical Structure: Difference between revisions
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
* [[Go Concepts#Subjects|Go Concepts]] | * [[Go Concepts#Subjects|Go Concepts]] | ||
=Operators= | |||
* [[Go Concepts - Operators|Operators]] | * [[Go Concepts - Operators|Operators]] | ||
=Identifiers= | =Identifiers= |
Revision as of 00:06, 22 March 2016
Internal
Operators
Identifiers
Types, functions, constants, variables, interfaces.
The blank identifier "_".
Identifiers (not values) can be exported or unexported.
Lower-case letter identifiers
Upper-case letter identifiers
Whitespace
Newlines, spaces and tabs.
Expression
Operators combine operands into expressions.
Literal
String Literal
Numeric Literal
Array Literal
Slice Literal
Map Literal
Struct Literal
Comment
// to the end of the line
/* Multiline line 1 ... line n */
Statements
for
if
Keywords
- Go Specification - Keywords: https://golang.org/ref/spec#Keywords
range | type | func | . | . |
package | go | . | . | . |
defer | chan | . | . | . |
Constants
Variables
Variables are always initialized to the type's zero value.
var <var-name> <type> = <initial-value> var a string = "blah"
<var-name> := <initial-value> a := "blah"
Variable Scopes
Package-level variable
Pass by Value vs Pass by Reference
In Go, all variables are passed by value. Even for pointer variables, since the value of the pointer is a memory address, passing pointer variables is still considered pass by value.
Pointers
Pointer variable.