• IT-Karriere:
  • Services:

Funktionen und gute Argumente

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

Stellenmarkt
  1. EnBW Energie Baden-Württemberg AG, Köln
  2. a+s Dialoggroup GmbH, verschiedene Standorte (Home-Office möglich)

  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.

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. 97,47€
  2. 2.399€ (inkl. 400€ Cashback - Bestpreis!)
  3. 50€ (mit Rabattcode "YDENUEDR6CZQWFQM" - 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...

burzum 26. Jun 2019

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


Folgen Sie uns
       


Mobilfunk: UMTS-Versteigerungstaktik wird mit Nobelpreis ausgezeichnet
Mobilfunk
UMTS-Versteigerungstaktik wird mit Nobelpreis ausgezeichnet

Sie haben Deutschland zum Mobilfunk-Entwicklungsland gemacht und wurden heute mit dem Nobelpreis ausgezeichnet: die Auktionstheorien von Paul R. Milgrom und Robert B. Wilson.
Ein IMHO von Frank Wunderlich-Pfeiffer

  1. Coronakrise Deutsche Urlaubsregionen verzeichnen starke Mobilfunknutzung
  2. LTE Telekom benennt weitere Gewinner von "Wir jagen Funklöcher"
  3. Mobilfunk Rufnummernportierung darf maximal 7 Euro kosten

Oneplus 8T im Test: Oneplus gutes Gesamtpaket kostet 600 Euro
Oneplus 8T im Test
Oneplus gutes Gesamtpaket kostet 600 Euro

Das Oneplus 8 wird durch das 8T abgelöst. Im Test überzeugen vor allem die Kamera und die Ladegeschwindigkeit. Ein 8T Pro gibt es 2020 nicht.
Ein Test von Tobias Költzsch

  1. Bloatware Oneplus installiert keine Facebook-Dienste mehr vor
  2. Smartphone Oneplus 8 und 8 Pro bekommen Android 11
  3. Mobile Neues Oneplus-Smartphone für 200 US-Dollar erwartet

Shifoo: Golem.de startet Betatest seiner Karriere-Coaching-Plattform
Shifoo
Golem.de startet Betatest seiner Karriere-Coaching-Plattform

Beratung, die IT-Profis in Job & Karriere effizient und individuell unterstützt: Golem.de startet die Video-Coaching-Plattform Shifoo. Hilf uns in der Betaphase, sie für dich perfekt zu machen, und profitiere vom exklusiven Angebot!

  1. Stellenanzeige Golem.de sucht Verstärkung für die Redaktion
  2. Stellenanzeige Golem.de sucht CvD (m/w/d)
  3. In eigener Sache Die 24-kernige Golem Workstation ist da

    •  /