Golang in Jupyter

Go | Erste Schritte mit Jupyter

Einführung

Erster Startpunkt ist die Homepage von Go: The Go Programming Language

Wenn das Interesse geweckt ist, dann folgt die Installation.

Entweder durch einen Installer, oder durch den Download des Paketes (z. B. für Windows). Noch schneller geht es, wenn man eine bestehende Umgebung nutzt: mit Hilfe von Docker

Voraussetzung ist eine lauffähige Installation von Docker.

Wir clonen dann das notwendige Repository und starten die Docker Umgebung:

git clone ttps://github.com/yunabe/lgo
cd lgo/docker/jupyter
docker compose up

Sollte beim Starten eine Fehlermeldung auftauchen, dass der Port nicht erlaubt ist, dann ändern wir diesen in der Datei docker-compose.yml

Error response from daemon: Ports are not available: listen tcp 0.0.0.0:8888: 

Ein neuer möglicher Port wäre dann 18888:

 ports:
      - "8888:8888"

Bei erfolgreichem Start kann die Web-Oberfläche unter dem entsprechenden Port aufgerufen werden: Standard ist 8888, also http://127.0.0.1:8888

Die Web-Oberfläche erfordert nun eine Anmeldung in Form eines Tokens:

Dieses Token wird beim Start in der Konsole angezeigt. Einfach von dort kopieren

Erste Schritte

Wir erstellen ein erstes Notebook. Dazu klicken wir auf New im rechten oberen Teil des Menüs und wählen Go aus:

Das neue Notebook mit dem Namen Untitled wird in einem neuen Fenster geöffnet:

Nennen wir es erstmal um: dazu klicken wir auf den Name Untitled:

Wie bei Programmieren üblich ist das erste Programm ein Hello World-Programm:

Als nächstes, etwas Anspruchsvolleres: die Fibonacci-Sequenze

func fib_recursive(n int) int {
    if n <= 1 {
        return n
    }
    return fib_recursive(n-1) + fib_recursive(n-2)
}

Für größere Were kann das schon etwas dauern

Also eine erste, kleine Optimierung

func fib_loop(n int) int {
    f := make([]int, n+1, n+2)
    if n < 2 {
        f = f[0:2]
    }
    f[0] = 0
    f[1] = 1
    for i := 2; i <= n; i++ {
        f[i] = f[i-1] + f[i-2]
    }
    return f[n]
}