• IT-Karriere:
  • Services:

Quellcode kann als Packages gruppiert werden

Der Go-Quellcode wird über mehrere Dateien verteilt, die sich wiederum jeweils in sogenannten Packages gruppieren lassen. Jede Quellcodedatei gehört immer genau einem Package an. Existieren muss mindestens ein Package mit dem Namen main. Beim Start des kompilierten Programms ruft Go in diesem Paket automatisch die Funktion main() auf - ähnlich wie bei C und C++.

Stellenmarkt
  1. Landratsamt Starnberg, Starnberg
  2. über duerenhoff GmbH, Raum Ingolstadt

In einer Quellcodedatei bindet man Pakete über die import-Anweisung ein und kann dann die im Package definierten Funktionen im eigenen Code nutzen. Dabei lauert allerdings gerade beim Umstieg eine kleine Stolperfalle: Nur wenn der Name einer Funktion mit einem Großbuchstaben beginnt, lässt sie sich in einem beliebigen anderen Package nutzen.

Schreibt man den Namen hingegen klein, dürfen nur noch die Methoden aus dem eigenen Package darauf zugreifen. Aus diesem Grund lässt sich fmt.Println() in jeder Quellcodedatei aufrufen - vorausgesetzt man hat dort das Paket fmt importiert. Die Groß- und Kleinschreibung ersetzt in Go somit die aus anderen Sprachen bekannten Zugriffsmodifikatoren private und public.

Go bringt bereits von Haus aus ein paar Packages mit. Sie offerieren neben Konstanten und mathematischen Formeln unter anderem auch Funktionen zum Zugriff auf das Dateisystem, zur Verarbeitung von XML- und JSON-Daten, zur Abwicklung von HTTP-Kommunikation und zur Verschlüsselung von Daten.

Modular

Ursprünglich verstaute man seine Pakete in einem Verzeichnis und verriet dem Compiler den Speicherort über die Umgebungsvariable GOPATH. Dieses simple Konzept führte jedoch schnell zu Abhängigkeitsproblemen und schließlich zur Entwicklung eines neuen Modulsystems. Das liegt mit der Veröffentlichung von Go 1.14 im Februar 2020 endlich in einer stabilen Fassung vor.

Ein Modul bündelt dabei mehrere zusammengehörende Packages. Es liegt entweder in einem eigenen Verzeichnis auf der Festplatte oder auf einem externen Server in einem Versionskontrollsystem. In der Import-Anweisung gibt man lediglich den passenden Ort an:

  1. import "github.com/spf13/cobra"

Github hat sich dabei zu einem beliebten Ablageort für Module entwickelt und wurde so zu einem inoffiziellen Repository für Go-Pakete.

Compiler-Spezialitäten

In jedem Fall kümmert sich der Compiler bei der Übersetzung um das Modulmanagement, lädt die notwendigen Packages herunter und löst Abhängigkeiten automatisch auf. Anders als etwa bei Python mit PIP benötigt Go keinen eigenen Paketmanager.

Der Compiler ist selbst in Go geschrieben und kann das fertige Binary direkt für verschiedene Architekturen und Betriebssysteme generieren. Dazu gehören unter anderem auch ARM-Systeme wie der Raspberry Pi. Dieses Cross-Compiling funktioniert ohne die Installation von weiteren Abhängigkeiten, es muss nur die gewünschte Plattform angegeben werden. Das erzeugte Ergebnis ist in jedem Fall ein statisch gelinktes Programm, das ohne Abhängigkeiten zu Bibliotheken auskommt. Eingebaut hat der Go-Compiler zudem ein kleines Test-Framework für Unit-Tests.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Go hat ZeigerIm Herbst 2021 soll Go generische Datentypen erhalten 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Top-Angebote
  1. (Bis zu 40 Prozent auf ausgewählte Notebooks, Monitore, PCs, Smartphones, Zubehör und mehr)
  2. 2.095€ neuer Bestpreis auf Geizhals
  3. ab 799€ auf Geizhals
  4. 499,99€ (Release 10.11.)

pengpong 13. Aug 2020 / Themenstart

Ein bischen spät zu der Party... aber egal ;) In deinem Beispiel würde ich aber in Go...

Butterkeks 06. Aug 2020 / Themenstart

Ja, aber was ich damit ausdrücken wollte, ist, dass unsere Welt nicht besser wäre, wenn...

BlackSuit 05. Aug 2020 / Themenstart

Offensichtlich willst du den Punkt nicht verstehen. Und natürlich je mehr Maps desto...

\pub\bash0r 05. Aug 2020 / Themenstart

Nein, aber das würde auch nicht passen, da du Interfaces in Go nicht so verwendest. In...

kieleich 04. Aug 2020 / Themenstart

Sind die mittlerweile wieder kleiner geworden? Also ich bin bei Go vor ein paar Jahren...

Kommentieren


Folgen Sie uns
       


IT-Freelancer: Der kürzeste Pfad zum nächsten Projekt
IT-Freelancer
Der kürzeste Pfad zum nächsten Projekt

Die Nachfrage nach IT-Freelancern ist groß - die Konkurrenz aber auch. Der nächste Auftrag kommt meist aus dem eigenen Netzwerk oder von Vermittlern. Doch wie findet man den passenden Mix?
Ein Bericht von Manuel Heckel

  1. Selbstständiger Sysadmin "Jetzt fehlen nur noch die Aufträge"

Prozessor: Wie arm ARM mit Nvidia dran ist
Prozessor
Wie arm ARM mit Nvidia dran ist

Von positiv bis hin zum Desaster reichen die Stimmen zum Deal: Was der Kauf von ARM durch Nvidia bedeuten könnte.
Eine Analyse von Marc Sauter

  1. Prozessoren Nvidia kauft ARM für 40 Milliarden US-Dollar
  2. Chipdesigner Nvidia bietet mehr als 40 Milliarden Dollar für ARM
  3. Softbank-Tochter Nvidia hat Interesse an ARM

Todesfall: Citrix-Sicherheitslücke ermöglichte Angriff auf Krankenhaus
Todesfall
Citrix-Sicherheitslücke ermöglichte Angriff auf Krankenhaus

Ein Ransomware-Angriff auf die Uniklinik Düsseldorf, der zu einem Todesfall führte, erfolgte über die "Shitrix" genannte Lücke in Citrix-Geräten

  1. Datenleck Citrix informiert Betroffene über einen Hack vor einem Jahr
  2. Shitrix Das Citrix-Desaster
  3. Perl-Injection Citrix-Geräte mit schwerer Sicherheitslücke und ohne Update

    •  /