User Tools

Site Tools


go

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
go [2018/04/14 12:29]
rpjday [Internal wiki links]
go [2019/08/25 09:38] (current)
rpjday [Articles on Go]
Line 2: Line 2:
  
 Stuff regarding Go programming language. Stuff regarding Go programming language.
 +
 +===== Figure out/Stuff =====
 +
 +  * proper brace placement to avoid semicolon insertion
 +  * "​import path" versus "​package name" (factored import statement)
 +  * fmt.Printf() format specifiers
 +  * named return values (explicit or allow to default)
 +  * type "zero values"​
 +  * "var p = &​Vertex{1,​2}",​ what is the scope/​lifetime?​
 +  * how to list all package methods from the command line?
 +  * how multi-platform things like Sqrt() work?
 +  * possible formats of for loop
 +  * neat uses of "​defer"​ statements (stacked)
 +    * deferred call args are evaluated immediately
 +    * modifying named return values
 +  * package "​init"​ functions
 +  * closures
 +  * methods
 +
 +===== Course outline =====
 +
 +  * installation
 +  * /​usr/​lib/​golang package structure (Go 1.13), personal src structure
  
 ===== External links ===== ===== External links =====
Line 20: Line 43:
   * [[https://​blog.learngoprogramming.com/​about-go-language-an-overview-f0bee143597c|About Go Language -- An Overview]] (Sep, 2017)   * [[https://​blog.learngoprogramming.com/​about-go-language-an-overview-f0bee143597c|About Go Language -- An Overview]] (Sep, 2017)
   * [[https://​medium.com/​golangspec/​import-declarations-in-go-8de0fd3ae8ff|Import declarations in Go]]   * [[https://​medium.com/​golangspec/​import-declarations-in-go-8de0fd3ae8ff|Import declarations in Go]]
 +  * [[https://​www.alexedwards.net/​blog/​an-overview-of-go-tooling|An overview of Go's tooling]]
  
 ==== Technical papers on Go ==== ==== Technical papers on Go ====
Line 25: Line 49:
   * [[https://​docs.google.com/​document/​d/​1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/​edit| Go 1.4 internal packages]]   * [[https://​docs.google.com/​document/​d/​1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/​edit| Go 1.4 internal packages]]
   * [[https://​docs.google.com/​document/​d/​1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/​|Go 1.5 Vendor Experiment]]   * [[https://​docs.google.com/​document/​d/​1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/​|Go 1.5 Vendor Experiment]]
 +  * [[https://​medium.com/​golangspec/​import-declarations-in-go-8de0fd3ae8ff|Import declarations in Go]]
  
 ===== Internal wiki links ===== ===== Internal wiki links =====
Line 33: Line 58:
   * [[Golangbot tutorial]]   * [[Golangbot tutorial]]
  
 +===== Language features =====
 +
 +==== Methods ====
 +
 +  * Go does not have classes; a method is a function with a special receiver argument (such as "​Vertex"​).
 +  * Value receiver versus pointer receiver (one or the other, not both)
 +  * Functions with a pointer argument must take a pointer, while methods with pointer receivers take either a value or a pointer as the receiver when they are called.
 +  * Methods with value receivers take either a value or a pointer as the receiver when they are called.
  
go.1523708999.txt.gz ยท Last modified: 2018/04/14 12:29 by rpjday