programming:go
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
programming:go [2023/09/04 19:29] – skipidar | programming:go [2023/11/01 07:31] (current) – ↷ Page moved from camunda:programming:go to programming:go skipidar | ||
---|---|---|---|
Line 203: | Line 203: | ||
</ | </ | ||
+ | |||
+ | |||
+ | == Pointers == | ||
+ | |||
+ | |||
+ | <sxh go> | ||
+ | // basic-types/ | ||
+ | package main | ||
+ | |||
+ | import ( | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | |||
+ | func main() { | ||
+ | // create a variable of type *T where T is an int | ||
+ | var a *int | ||
+ | |||
+ | // declare and assign `b` variable of type int | ||
+ | valu := 100 | ||
+ | |||
+ | // assign the address of b to a | ||
+ | pointr = &valu | ||
+ | |||
+ | // print out the value of a which is the address of b | ||
+ | fmt.Println(pointr) | ||
+ | // returns: ptr | ||
+ | fmt.Println(" | ||
+ | |||
+ | // print out the value at the address of b | ||
+ | fmt.Println(*pointr) | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Structs & pass by reference or value == | ||
+ | |||
+ | Structure to hold data in Go Lang | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <sxh go> | ||
+ | type author struct { | ||
+ | first string | ||
+ | last string | ||
+ | } | ||
+ | |||
+ | // getter | ||
+ | // attention - the assignment to struct - is derived from parenthesis after " | ||
+ | // is declared OUTSIDE of struct :( | ||
+ | func (a author) fullName() string { | ||
+ | return a.first + " " + a.last | ||
+ | } | ||
+ | |||
+ | // setter | ||
+ | // passing the reference, so that we change the exact object and not its value | ||
+ | // changeName changes the first and last name of the author | ||
+ | func (a *author) changeName(first, | ||
+ | a.first = first | ||
+ | a.last = last | ||
+ | } | ||
+ | |||
+ | func main() { | ||
+ | // initialize author | ||
+ | a := author{ | ||
+ | first: " | ||
+ | last: | ||
+ | } | ||
+ | |||
+ | // print the author' | ||
+ | fmt.Println(a.fullName()) | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | Explains why to pass | ||
+ | |||
+ | {{https:// | ||
+ | |||
programming/go.1693855773.txt.gz · Last modified: by skipidar