Go (język programowania)

język programowania

Go (często nazywany także golang) – wieloparadygmatowy język programowania opracowany przez pracowników firmy 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++).

Go
Ilustracja
Logo języka
Pojawienie się

2009

Paradygmat

wieloparadygmatowy

Typowanie

silne (statyczne)

Implementacje

go, gccgo

Aktualna wersja stabilna

1.19.3
(1 listopada 2022) [±]

Aktualna wersja testowa

1.19rc2
(13 lipca 2022) [±]

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
Gryzoń z rodziny gofferowatych jest oficjalną maskotką języka Go[1]

Dostępny jest kompilator na platformę x86, x64 i ARM o nazwie go. Został również stworzony kompilator na bazie GNU Compiler Collection – gccgo[2].

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("Wprowadź słowo i zatwierdź klawiszem 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.

PrzypisyEdytuj

  1. The Go Gopher - The Go Blog. blog.golang.org, 2014-03-24. [dostęp 2021-08-18]. (ang.).
  2. Top (The GNU Go Compiler). gcc.gnu.org. [dostęp 2021-08-06]. (ang.).

Linki zewnętrzneEdytuj