Najlepsze pytania
Chronologia
Czat
Perspektywa

Go (język programowania)

język programowania Z Wikipedii, wolnej encyklopedii

Go (język programowania)
Remove ads

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

Szybkie fakty Pojawienie się, Paradygmat ...
Thumb
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].

Remove ads

Generyki

Brak wsparcia dla programowania generycznego we wczesnych wersjach Go spotkał się z dużą krytyką.[3] Projektanci wyrazili otwartość na programowanie generyczne i zauważyli, że wbudowane funkcje w rzeczywistości są generyczne pod względem typów, ale traktowane jako przypadki specjalne. Rob Pike nazwał to słabością, która mogłaby zostać w przyszłości zmieniona.[4]

W sierpniu 2018 roku główni współtwórcy Go opublikowali wstępne projekty dotyczące programowania generycznego i obsługi błędów, prosząc użytkowników o przesyłanie opinii.[5] Jednak propozycja dotycząca obsługi błędów została ostatecznie porzucona.[6]

W czerwcu 2020 roku opublikowano nowy projekt dokumentu, który dodawał do Go niezbędną składnię umożliwiającą deklarowanie generycznych funkcji i typów.[7] Udostępniono narzędzie do translacji kodu, go2go, aby umożliwić użytkownikom wypróbowanie nowej składni, wraz z wersją internetowego Go Playground obsługującą generyki.[8]

Ostatecznie generyki zostały dodane do Go w wersji 1.18, wydanej 15 marca 2022 roku.[9]

Remove ads

Przykłady

Podsumowanie
Perspektywa

Hello World

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

package main

func main() {
    println("Hello, World")
}

Współbieżność

package main

import (
	"fmt"
	"time"
)

func wordPrinter(word string, n int) {
	for range n {
		fmt.Println("Podaje słowo: ", word)
		time.Sleep(time.Second)
	}
}

func main() {
	go wordPrinter("pierwsze", 3)
	time.Sleep(500 * time.Millisecond)
	go wordPrinter("drugie", 4)
	time.Sleep(5 * time.Second)
}

Powyższy program demonstruje wykorzystanie gorutyn – lekkich wątków współbieżnych w języku Go. Funkcja wordPrinter przyjmuje jako argumenty ciąg znaków (word) oraz liczbę powtórzeń (n), a następnie wypisuje podane słowo n razy, wprowadzając jednosekundowe opóźnienie między iteracjami. Program uruchamia dwie gorutyny, które działają równolegle, pokazując mechanizm współbieżnego wykonywania zadań.

Generyki

package main

func greater[T int | float64 | string](v1 T, v2 T) bool {
	return v1 > v2
}
func main() {
	println(greater(1.1, 1.2))
	println(greater(1, 2))
	println(greater("a", "b"))
	println(greater("b", "a"))
}

Funkcja greater[T] przyjmuje parametr typu T, ograniczony do int, float64 i string, umożliwiając porównywanie wartości tych typów. Dzięki generykom kod jest elastyczny i wielokrotnego użytku, eliminując konieczność pisania osobnych funkcji dla każdego typu.

Remove ads

Przypisy

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads