Abo
  • IT-Karriere:

Funktionen und gute Argumente

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

Stellenmarkt
  1. Voith Group, Heidenheim an der Brenz, York (USA), Sao Paulo (Brasilien), Västerås (Schweden)
  2. OMICRON electronics GmbH, Klaus (Österreich)

  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.

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.

 Julia: Eine Programmiersprache nicht nur für die WissenschaftMultiple Dispatch 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Hardware-Angebote
  1. 344,00€

Bruto 27. Jun 2019 / Themenstart

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

Maxabcabcabcqwe 26. Jun 2019 / Themenstart

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

Das... 26. Jun 2019 / Themenstart

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

burzum 26. Jun 2019 / Themenstart

Doch. Du sagst es ja selbst, das Konzept, die Herangehensweise sind das Entscheidende...

Kommentieren


Folgen Sie uns
       


Maxus EV80 Probe gefahren

Golem.de hat mit dem Maxus EV80 einen chinesischen Transporter mit europäischer DNA getestet.

Maxus EV80 Probe gefahren Video aufrufen
SEO: Der Google-Algorithmus benachteiligt Frauen
SEO
Der Google-Algorithmus benachteiligt Frauen

Websites von Frauen werden auf Google schlechter gerankt als die von Männern - und die deutsche Sprache ist schuld. Was lässt sich dagegen tun?
Von Kathi Grelck

  1. Google LED von Nest-Kameras lässt sich nicht mehr ausschalten
  2. FIDO Google führt Logins ohne Passwort ein
  3. Nachhaltigkeit 2022 sollen Google-Geräte Recycling-Kunststoff enthalten

Raspberry Pi 4B im Test: Nummer 4 lebt!
Raspberry Pi 4B im Test
Nummer 4 lebt!

Das Raspberry Pi kann endlich zur Konkurrenz aufschließen, aber richtig glücklich werden wir mit dem neuen Modell des Bastelrechners trotz bemerkenswerter Merkmale nicht.
Ein Test von Alexander Merz

  1. Eben Upton Raspberry-Pi-Initiator spielt USB-C-Fehler herunter
  2. 52PI Ice Tower Turmkühler für Raspberry Pi 4B halbiert Temperatur
  3. Kickstarter Lyra ist ein Gameboy Advance mit integriertem Raspberry Pi

Nachhaltigkeit: Bauen fürs Klima
Nachhaltigkeit
Bauen fürs Klima

In Städten sind Gebäude für gut die Hälfte der Emissionen von Treibhausgasen verantwortlich, in Metropolen wie London, Los Angeles oder Paris sogar für 70 Prozent. Klimafreundliche Bauten spielen daher eine wichtige Rolle, um die Klimaziele in einer zunehmend urbanisierten Welt zu erreichen.
Ein Bericht von Jan Oliver Löfken

  1. Klimaschutz Großbritannien probt für den Kohleausstieg
  2. Energie Warum Japan auf Wasserstoff setzt

    •  /