• 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. Rexel Germany GmbH & Co. KG, München
  2. abilex GmbH, Berlin

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

Golem Akademie
  1. C++ Clean Code - Best Practices für Programmierer
    7.-11. Juni 2021, online
  2. Masterclass: Data Science mit Pandas & Python
    22./23. April 2021, online
Weitere IT-Trainings

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
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)

pengpong 13. Aug 2020

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

Butterkeks 06. Aug 2020

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

BlackSuit 05. Aug 2020

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

\pub\bash0r 05. Aug 2020

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

kieleich 04. Aug 2020

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


Folgen Sie uns
       


Gopro Hero 9 Black - Test

Ist eine Kamera mit zwei Displays auch doppelt so gut?

Gopro Hero 9 Black - Test Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /