• IT-Karriere:
  • Services:

Funktionen und gute Argumente

Wie in vielen Skriptsprachen lassen sich Funktionen recht kompakt in Julia notieren:

Stellenmarkt
  1. parfuemerie.de beauty alliance GmbH & Co. KG, Bielefeld
  2. Universitätsklinikum Frankfurt, Frankfurt am Main

  1. function f(x,y)
  2. x + y
  3. end

Dazu gibt es obendrein die Kurzschreibweise f(x,y) = x + y. Julia liefert standardmäßig den Wert des letzten Ausdrucks in der Funktion zurück. Im Zweifelsfall kann man mit return einen bestimmten Wert zurückgeben. Mehrere Rückgabewerte sind ebenfalls möglich, die Julia in ein entsprechendes Tupel packt und dieses dann zurückgibt.

Tupel ergänzen die schon aus anderen Sprachen bekannten Arrays und können beliebige Werte speichern: x = (2.3, Hallo, 5+4). Der Zugriff erfolgt mit der Klammernotation, x[2] liefert beispielsweise Hallo.

Golem Akademie
  1. Masterclass: Data Science mit Pandas & Python
    9./10. September 2021, online
  2. Einführung in die Programmierung mit Rust
    21.-24. September 2021, online
Weitere IT-Trainings

Funktionen behandelt Julia als First-Class-Objekte. Sie lassen sich folglich Variablen zuweisen, als Argumente übergeben und als Rückgabewerte zurückliefern. Möglich sind auch anonyme Funktionen:

  1. function (x)
  2. 2x+3
  3. end

Für sie gibt es ebenfalls eine Kurzschreibweise, die für das Beispiel x -> 3x+2 lautet. Wie auch in anderen Sprachen werden anonyme Funktionen hauptsächlich dafür genutzt, um sie direkt als Argumente an eine andere Funktion zu übergeben.

Gute Argumente

Die Argumente von Funktionen lassen sich mit Standard-Werten vorbelegen: function f(a, b=2) . Damit würde es genügen, f(1) aufzurufen. Ergänzend darf man den Argumenten Namen geben. Dies hebt die Bedeutung hervor, zudem darf man so ihre Reihenfolge vertauschen. Diese sogenannten Keywords Arguments stehen hinter einem Semikolon:

  1. function male(x, y; pinsel=fein, dicke=1) ...
  2. male(1,2, dicke=2)

Auf Wunsch kann eine Funktion auch beliebig viele Argumente entgegennehmen, die Julia dann innerhalb der Funktion in einem Tupel verfügbar macht (Varargs Functions). Auch die Operatoren wie +, * oder - sind für Julia allesamt Funktionen - 1+2 ist nur eine alternative Schreibweise für +(1,2).

Immer im Fluss

Bedingte Anweisungen erfolgen mit dem aus vielen anderen Sprachen bekannten if-else-Konstrukt, wobei die Bedingung immer true oder false sein muss:

  1. if x > 0
  2. Positive Zahl
  3. else
  4. Negative Zahl
  5. end

Julia bietet nur eine while- und eine for-Schleife. Letztgenannte iteriert über eine Zahlenfolge oder die Elemente in einem Container. In folgendem Beispiel gibt sie die Zahlen von 1 bis 5 aus:

  1. for i = 1:5
  2. println(i)
  3. end

Schleifen lassen sich mit break abbrechen, continue startet umgehend den nächsten Schleifendurchlauf. Zwei verschachtelte Schleifen können Entwickler zu einer zusammenziehen:

  1. for i = 1:2, j = 3:4
  2. println((i, j))
  3. end

Julia kennt Exceptions, die Funktionen bei einem Fehler mit throw werfen können. Ähnlich wie in Java fängt die Umgebung die Fehler über einen try- und catch-Block ab.

Typisch

Julia kennt unter anderem die Integertypen Int8, Int16 und Int32. Hin und wieder möchte man jedoch Code schreiben, der mit allen Integertypen umgehen kann. Dabei helfen die Abstract Types, die zusammen eine Hierarchie, den Type Graph, bilden. Ein Abstract Type ist beispielsweise der Typ Number, der wiederum für alle Zahlen steht. Die Funktion foo(a::Numbers) würde folglich alle Zahlen als Argument akzeptieren.

Am Ende der Hierarchie stehen die Primitive Types, die einfach eine vorgegebene Anzahl Bits im Speicher belegen. Bei Bedarf kann man Abstract Types und Primitive Types selbst definieren. In folgendem Beispiel ist der abstrakte Datentyp MeineZahl ein Subtyp von Number

  1. abstract type MeineZahl <: Number end

Ergänzend hält Julia noch weitere interessante Datentyp-Konzepte bereit. So lassen sich mit Union{} mehrere Typen in einem vereinen und so etwa der Datentyp StringoderZahl umsetzen. Den Typ können Entwickler zudem im Programmcode abfragen und vergleichen. Beispielsweise prüft isa(), ob ein Objekt einem ganz bestimmten Typ entspricht - isa(1, Int) wäre beispielsweise true.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Julia: Eine Programmiersprache nicht nur für die WissenschaftMultiple Dispatch 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Top-Angebote
  1. (u. a. Angebote zu Spielen, PC- und Konsolen-Zubehör, Laptops und Fernsehern)
  2. (u. a. LG OLED65CX9LA 65 Zoll OLED 120Hz für 1.799€, Sony KE-85XH9096 85 Zoll LED für 1...
  3. 745€ (Bestpreis)

Bruto 27. Jun 2019

Der Gratis-Kurs bei Coursera von Andrew Ng ist perfekt für Einsteiger. Es gibt mehrere...

Maxabcabcabcqwe 26. Jun 2019

Meiner Meinung nach, ist es einfacher sich die Befehle einer Sprache durch das Aufrufen...

Das... 26. Jun 2019

Ah, das ist schön zu hören! Ich dachte Typisierung ist ein vernachlässigtes Anhängsel wie...

[gelöscht] 26. Jun 2019


Folgen Sie uns
       


VLC-Gründer Jean-Baptiste Kempf im Interview

Wir haben uns mit dem Präsidenten der VideoLAN-Nonprofit-Organisation unterhalten.

VLC-Gründer Jean-Baptiste Kempf im Interview 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

      •  /