Difference between revisions of "Go"

From wikieduonline
Jump to navigation Jump to search
 
(16 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
* [[Concurrent]]
 
* [[Concurrent]]
 +
* [[Memory management]]: [[Garbage collection]]
  
 
== Installation ==
 
== Installation ==
 
* macOS: <code>[[brew install go]]</code>
 
* macOS: <code>[[brew install go]]</code>
 
* [[Ubuntu]]: <code>[[apt install golang-go]]</code> (aprox 500MB)
 
* [[Ubuntu]]: <code>[[apt install golang-go]]</code> (aprox 500MB)
 +
 +
 +
* [[Ubuntu VM]] on [[Apple M]]:
 +
[[wget]] https://go.dev/dl/go1.20.3.linux-arm64.tar.gz
 +
  rm -rf [[/usr/local/]]go && tar -C /usr/local -xzf go1.20.3.linux-arm64.tar.gz && [[export]] [[PATH]]=$PATH:/usr/local/go/bin &&  [[go version]]
  
 
== Commands ==
 
== Commands ==
Line 13: Line 19:
 
* <code>[[go test]]</code>, for unit testing and microbenchmarks
 
* <code>[[go test]]</code>, for unit testing and microbenchmarks
 
* <code>[[go fmt]]</code>, for formatting code
 
* <code>[[go fmt]]</code>, for formatting code
* <code>[[go get]]</code>, for retrieving and installing remote packages
+
* <code>[[go get]]</code>, for retrieving and installing remote [[packages]]
 
* <code>[[go vet]]</code>, a static analyzer looking for potential errors in code
 
* <code>[[go vet]]</code>, a static analyzer looking for potential errors in code
 
* <code>[[go run]]</code>, a shortcut for building and executing code
 
* <code>[[go run]]</code>, a shortcut for building and executing code
Line 19: Line 25:
 
* <code>[[gorename]]</code>, for renaming variables, functions, and so on in a type-safe way
 
* <code>[[gorename]]</code>, for renaming variables, functions, and so on in a type-safe way
 
* <code>[[go generate]]</code>, a standard way to invoke code generators
 
* <code>[[go generate]]</code>, a standard way to invoke code generators
* <code>[[go mod]]</code> init
+
* <code>[[go mod]] init</code>
 
* <code>[[go list]]</code>
 
* <code>[[go list]]</code>
 +
* [[go tool]]
 +
** [[go tool pprof]]
  
 
== Examples ==
 
== Examples ==
 
* [[Go: Hello world! example]]
 
* [[Go: Hello world! example]]
 
* [[for (Go lang)]]
 
* [[for (Go lang)]]
 +
 +
== Activities ==
 +
* Read go FAQs: https://go.dev/doc/faq#goroutines
  
 
== Projects ==
 
== Projects ==
Line 30: Line 41:
 
* [[GVisor]] (2018)
 
* [[GVisor]] (2018)
 
* [[Grafana]] (2014)
 
* [[Grafana]] (2014)
 +
 +
== Errors ==
 +
* <code>[[panic: runtime error: invalid memory address or nil pointer dereference]]</code>
  
 
== Related ==
 
== Related ==
 
* [[Class Inheritance]]: [[embedding]] and [[interfaces]] ([[duck typing]])
 
* [[Class Inheritance]]: [[embedding]] and [[interfaces]] ([[duck typing]])
* [[net/http]]
+
* <code>[[net/http]]</code>
* [[channels]]
+
* <code>[[channels]]</code>
 
* https://pkg.go.dev/std
 
* https://pkg.go.dev/std
 
* <code>[[defer]]</code>
 
* <code>[[defer]]</code>
 +
* <code>[[$HOME/go/bin/]]</code>
 +
* [[Concurrency vs parallelism]]
  
 
== See also ==
 
== See also ==
 
* https://en.wikipedia.org/wiki/Go_(programming_language)#Version_history
 
* https://en.wikipedia.org/wiki/Go_(programming_language)#Version_history
 +
* {{go tool}}
 
* {{Go}}
 
* {{Go}}
  
 
[[Category:Programming]]
 
[[Category:Programming]]
 
[[Category:Go]]
 
[[Category:Go]]

Latest revision as of 09:09, 8 August 2024

wikipedia:Go (programming language) (Nov 2009)

Installation[edit]


wget https://go.dev/dl/go1.20.3.linux-arm64.tar.gz
 rm -rf /usr/local/go && tar -C /usr/local -xzf go1.20.3.linux-arm64.tar.gz && export PATH=$PATH:/usr/local/go/bin &&  go version

Commands[edit]

Examples[edit]

Activities[edit]

Projects[edit]

Errors[edit]

Related[edit]

See also[edit]

Advertising: