Go (język programowania)
Go (często nazywany także golang) – język programowania opracowany przez pracowników Google: Roberta Griesemera, Roba Pike'a oraz Kena Thompsona. Łączy w sobie łatwość pisania aplikacji charakterystyczną dla języków dynamicznych (np. Python, Lisp), jak również wydajność języków kompilowanych (np. C, C++).
| ||
![]() Logo języka | ||
Pojawienie się | 2009 | |
Paradygmat | wieloparadygmatowy | |
Typowanie | silne (statyczne) | |
Implementacje | go, gccgo | |
Aktualna wersja stabilna | 1.16
16 lutego 2021[1] | |
Twórca | Robert Griesemer, Rob Pike, Ken Thompson | |
Licencja | BSD + przyznany patent | |
Platforma sprzętowa | wieloplatformowy | |
Platforma systemowa | GNU/Linux, OS X, FreeBSD, OpenBSD, MS Windows, Plan 9 | |
Strona internetowa |
Dostępny jest kompilator na platformę x86, x64 i ARM o nazwie go. Został również stworzony kompilator na bazie GNU Compiler Collection – Gccgo.
PrzykładyEdytuj
Hello WorldEdytuj
Przykładowy program (Hello world) napisany w Go:
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
WspółbieżnośćEdytuj
package main
import (
"fmt"
"time"
)
func readword(ch chan string) {
fmt.Println("Type a word, then hit Enter.")
var word string
fmt.Scanf("%s", &word)
ch <- word
}
func timeout(t chan bool) {
time.Sleep(5 * time.Second)
t <- true
}
func main() {
t := make(chan bool)
go timeout(t)
ch := make(chan string)
go readword(ch)
select {
case word := <-ch:
fmt.Println("Otrzymano ", word)
case <-t:
fmt.Println("Upłynięcie limitu czasu.")
}
}
Funkcje timeout i readword zostaną wywołane niezależnie od swojej zawartości. Następnie, jeżeli w ciągu 5 sekund nie zostanie wpisane słowo to wyświetli się powiadomienie o upłynięciu limitu czasu, w przeciwnym razie zostanie wyświetlone dane słowo.