Documentation ¶
Index ¶
- func BasicTypes()
- func Constants()
- func ExportedNames()
- func Functions()
- func FunctionsContinued()
- func Imports()
- func MultipleResult()
- func NamedResults()
- func NumericConstants()
- func Packages()
- func ShortVariableDeclarations()
- func TypeConversions()
- func TypeInference()
- func Variables()
- func VariablesWithInitializers()
- func Zero()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BasicTypes ¶
func BasicTypes()
Go's basic types are:
bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // alias for uint8 rune // alias for int32 // represents a Unicode code point float32 float64 complex64 complex128
The example shows variables of several types and also that variable declarations may be "factored" into blocks, as with import statements.
The int, uint and uintptr types are usually 32 bits wide on 32-bit systems and 64 bits wide on 64-bit systems. When you need an integer value you should use int unless you have a specific reason to use a sized or unsigned integer type.
func Constants ¶
func Constants()
Constants are declared like variables, but with the const keyword.
Constants can be character, string, boolean or numeric values.
Constants cannot bedeclared using the := syntax.
func ExportedNames ¶
func ExportedNames()
In Go, a name is exported if it begins with a capital letter. For example, Pizza is an exported name, as is Pi, which is exported from the math package.
pizza and pi do not start with a capital letter, so they are not exported.
When importing a package, you can refer only to its exported names. Any "unexported" names are not accessible from outside the package.
Run the code. Notice the error message.
To fix the error, rename math.pi to math.Pi and try it again.
func Functions ¶
func Functions()
A function can take zero or more arguments.
In this example, add takes two parameters of type int.
Notice that the type comes after the variable name.
(For more about why types look the way they do, see the article on Go's declaration syntax.) -> https://blog.golang.org/declaration-syntax
func FunctionsContinued ¶
func FunctionsContinued()
When two or more consecutive named function parameters share a type, you can omit the type from all but the last.
In this example, we shortened
x int, y int -> x, y int
func Imports ¶
func Imports()
This code groups the imports into a parenthesized, "factored" import statement.
You can also write multiple import statements, like:
import "fmt" import "math"
But it is good style to use the factored import statement.
func MultipleResult ¶
func MultipleResult()
A function can return any number of results.
The swap function returns two strings.
func NamedResults ¶
func NamedResults()
Go's return values may be named. If so, they are treated as variables defined at the top of the function.
These names should be used to document the meaning of the return values.
A return statement without arguments returns the named return values. This is known as a "naked" return.
Naked return statements should be used only in short functions, as with the example shown here. They can harm readability in longer functions.
func NumericConstants ¶
func NumericConstants()
Numeric constants are high-precision values.
An untyped constant takes the type needed by its context.
Try printing needInt(Big) too.
(An int can store at maximum a 64-bit integer, and sometimes less.)
func Packages ¶
func Packages()
Every Go program is made up of packages.
Programs start running in package main.
This program is using the packages with import paths "fmt" and "math/rand". By convention, the package name is the same as the last element of the import path.For instance, the "math/rand" package comprises files that begin with the statement package rand.
Note: The environment in which these programs are executed is deterministic, so each time you run the example program rand.Intn will return the same number.
(To see a different number, seed the number generator; see rand.Seed. Time is constant in the playground, so you will need to use something else as the seed.)
func ShortVariableDeclarations ¶
func ShortVariableDeclarations()
Inside a function, the := short assignment statement can be used in place of a var declaration with implicit type.
Outside a function, every statementbegins with a keyword (var, func, and so on) and so the := construct is n
func TypeConversions ¶
func TypeConversions()
The expression T(v) converts the value v to the type T.
Some numeric conversions:
var i int = 42 var f float64 = float64(i) var u uint = uint(f)
Or put more simply:
i := 42 f := float64(i) u := uint(f)
Unlike in C, in Go assignment between items of different type requires an explicit conversion. Try removing the float64 or uint conversions in the sexample and see what happens.
func TypeInference ¶
func TypeInference()
When declaring a variable without specifying an explicit type (either by using the := syntax or var = expression syntax), the variable's type is inferred from the value on the right hand side.
When the right hand side of the declaration is typed, the new variable is of that same type:
var i int j := i // j is an int
But when the right hand side contains an untyped numeric constant, the new variable may be an int, float64 or complex128 depending on the precision of the constant:
i := 42 // int f := 3.142 // float64 g := 0.867 + 0.5i // complex128
Try changing the initial value of v in the example code and observe how its type is affected.
func Variables ¶
func Variables()
The var statement declares a list of variables; as in function argument lists, the type is last.
A var statement can be at package or function level. We see both in this example.
func VariablesWithInitializers ¶
func VariablesWithInitializers()
A var declaration can include initializers, one per variable.
If an initializer is present, the type can be omitted; the variable will take the type of the initializer.
Types ¶
This section is empty.
Source Files ¶
- b10_short_variable_declarations.go
- b11_basic_types.go
- b12_zero.go
- b13_type_conversions.go
- b14_type_inference.go
- b15_constants.go
- b16_numeric_constants.go
- b1_packages.go
- b2_imports.go
- b3_exported_names.go
- b4_functions.go
- b5_functions_continued.go
- b6_multiple_results.go
- b7_named_results.go
- b8_variables.go
- b9_variables_with_initializers.go