Go (język programowania)

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Go
Logo języka
Logo języka
Pojawienie się 2009
Paradygmat wieloparadygmatowy
Typowanie silne (statyczne)
Implementacje go, gccgo
Aktualna wersja stabilna 1.10

16 lutego 2018; 6 miesięcy temu[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

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++).

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łady[edytuj | edytuj kod]

Hello World[edytuj | edytuj kod]

Przykładowy program (Hello world) napisany w Go:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}

Współbieżność[edytuj | edytuj kod]

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.

Przypisy[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]