Abo
  1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Programmiersprache für…

Lokale Kopien von Funktionsparametern

  1. Thema

Neues Thema Ansicht wechseln


  1. Lokale Kopien von Funktionsparametern

    Autor: WurstCase 28.09.17 - 16:28

    "In Kotlin gilt die Konvention, möglichst immer alle genutzten Variablen auch tatsächlich als var zu definieren. Das betrifft auch die übergebenen Parameter, die der Rumpf von ggt() daher für die Berechnung in die Variablen a und b kopiert."

    Was ist denn genau der Vorteil dieser Konvention, Funktionsparameter innerhalb der Funktion in neue lokale Variablen zu kopieren? Und wie ist der erste Satz genau zu verstehen? Können Variablen/Konstanten auch anders (ohne var/val) deklariert werden, abgesehen von der Funktionsparameterliste?

  2. Re: Lokale Kopien von Funktionsparametern

    Autor: Nocta 29.09.17 - 10:49

    Ich habe noch nie Kotlin benutzt, aber ich verstehe das so, dass Variablen die man verändert, eben var sein müssen. Wenn man nun alle Variablen, die man tatsächlich in der Funktion verändert als var definiert, und den Rest als val hat man drei Vorteile:

    1) Der Compiler kann den Code mit "val" Werten ähnlich zu dem "const" Qualifier in anderen Sprachen besser optimieren.
    2) Der Nutzer weiß, dass die val Werte konstant sind und sich nicht ändern und der Nutzer weiß, dass sich alle anderen Variablen ändern werden (bzw ändern können) und er davon ausgehen muss, dass sie nach dem Funktionsaufruf tatsächlich andere Werte enthalten.
    3) Es werden nur Werte kopiert, die auch kopiert werden müssen, was einen minimalen Speicher und Geschwindigkeitsvorteil bieten sollte.

    Soweit jedenfalls aus meinem allgemeinen Verständnis heraus, von Kotlin speziell habe ich keine Ahnung.

  3. Re: Lokale Kopien von Funktionsparametern

    Autor: Das Osterschnabeltier 29.09.17 - 11:34

    Nocta schrieb:
    --------------------------------------------------------------------------------
    > Ich habe noch nie Kotlin benutzt, aber ich verstehe das so, dass Variablen
    > die man verändert, eben var sein müssen. Wenn man nun alle Variablen, die
    > man tatsächlich in der Funktion verändert als var definiert, und den Rest
    > als val hat man drei Vorteile:
    >
    > 1) Der Compiler kann den Code mit "val" Werten ähnlich zu dem "const"
    > Qualifier in anderen Sprachen besser optimieren.
    > 2) Der Nutzer weiß, dass die val Werte konstant sind und sich nicht ändern
    > und der Nutzer weiß, dass sich alle anderen Variablen ändern werden (bzw
    > ändern können) und er davon ausgehen muss, dass sie nach dem
    > Funktionsaufruf tatsächlich andere Werte enthalten.
    > 3) Es werden nur Werte kopiert, die auch kopiert werden müssen, was einen
    > minimalen Speicher und Geschwindigkeitsvorteil bieten sollte.
    >
    > Soweit jedenfalls aus meinem allgemeinen Verständnis heraus, von Kotlin
    > speziell habe ich keine Ahnung.

    Zu 1: Jeder vernünftige Compiler hat heute Constant Propagation und findet das auch selber heraus.

  4. Re: Lokale Kopien von Funktionsparametern

    Autor: MoonShade 30.09.17 - 11:16

    Andere Sprachen wie Skala halten das genauso mit der Konvention. Zitat aus Learning Skala:

    > For most languages [...] [using variables] is the typical pattern for working with named, assignable memory storage. [...] In Skala, values are preferred over variables by convention, due to the stability and predictability they bring to source code.

    > When you define a value you can be assured that it will retain the same value regardless of any other code that may access it. Reading and debugging code is easier when a value assigned at the beginning of a code segment is unchanged through the end of the code segment.

    > Finally, when working with data that may be available for the life span of an application, or accessible from concurrent or multithreaded code, an immutable value will be more stable and less prone to errors than mutable data that may be modified at unexpected times.

  5. Re: Lokale Kopien von Funktionsparametern

    Autor: tomate.salat.inc 30.09.17 - 12:15

    WurstCase schrieb:
    --------------------------------------------------------------------------------
    > Was ist denn genau der Vorteil dieser Konvention, Funktionsparameter
    > innerhalb der Funktion in neue lokale Variablen zu kopieren?

    Weil sich Parameter nicht ändern sollten. Besonders drastisch ist das, wenn du mit Code zu tun hast, wo Methoden gerne mal > 100 Zeilen lang sind. Das an sich ist schon sehr kacke. Besonders blöd wirds dann, wenn du die Methode erweitern darfst und sich irgendwo dazwischen in einem if plötzlich der Wert des Parameters ändert. Das ist dann im besten Fall noch ein Edge-Case --> BUG!

  6. Re: Lokale Kopien von Funktionsparametern

    Autor: horotab 05.10.17 - 11:09

    Wer Methoden schreibt, die so lang sind, mach idR sowieso etwas falsch. Im Idealfall hat jede Methode genau eine Aufgabe, das ist eine saubere Struktur die auch einfach zu Debuggen ist.

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. WBS GRUPPE, Berlin
  2. alanta health group GmbH, Hamburg
  3. Veridos GmbH, München
  4. Gesellschaft für Anlagen- und Reaktorsicherheit (GRS) gGmbH, Köln

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (aktuell u. a. ASUS ZenFone 3 (ZE552KL) 64 GB für 129€ + Versand)
  2. für 50,96€ mit Code: Osterlion19


Haben wir etwas übersehen?

E-Mail an news@golem.de


Technologie: Warum Roboter in Japan so beliebt sind
Technologie
Warum Roboter in Japan so beliebt sind

Japaner produzieren nicht nur mehr Roboter als jede andere Nation, sie gehen auch selbstverständlicher mit ihnen um. Das liegt an der besonderen Geschichte und Religion des Inselstaats - und an Astro Boy.
Von Miroslav Stimac

  1. Kreativität Roboterdame Ai-Da soll zeichnen und malen
  2. Automatisierung Roboterhotel entlässt Roboter
  3. Cimon Die ISS bekommt einen sensiblen Kommunikationsroboter

Raspi-Tastatur und -Maus im Test: Die Basteltastatur für Bastelrechner
Raspi-Tastatur und -Maus im Test
Die Basteltastatur für Bastelrechner

Für die Raspberry-Pi-Platinen gibt es eine offizielle Tastatur und Maus, passenderweise in Weiß und Rot. Im Test macht die Tastatur einen anständigen Eindruck, die Maus hingegen hat uns eher kaltgelassen. Das Keyboard ist zudem ein guter Ausgangspunkt für Bastelprojekte.
Ein Test von Tobias Költzsch

  1. Bastelcomputer Offizielle Maus und Tastatur für den Raspberry Pi
  2. Kodi mit Raspberry Pi Pimp your Stereoanlage
  3. Betriebssystem Windows 10 on ARM kann auf Raspberry Pi 3 installiert werden

Jobporträt: Wenn die Software für den Anwalt kurzen Prozess macht
Jobporträt
Wenn die Software für den Anwalt kurzen Prozess macht

IT-Anwalt Christian Solmecke arbeitet an einer eigenen Jura-Software, die sogar automatisch auf Urheberrechtsabmahnungen antworten kann. Dass er sich damit seiner eigenen Arbeit beraubt, glaubt er nicht. Denn die KI des Programms braucht noch Betreuung.
Von Maja Hoock

  1. Struktrurwandel IT soll jetzt die Kohle nach Cottbus bringen
  2. IT-Jobporträt Spieleprogrammierer "Ich habe mehr Code gelöscht als geschrieben"
  3. Recruiting Wenn die KI passende Mitarbeiter findet

  1. Faltbares Smartphone: Samsung sagt Start des Galaxy Fold ab
    Faltbares Smartphone
    Samsung sagt Start des Galaxy Fold ab

    Samsung steht vor einem Foldgate: Der südkoreanische Hersteller hat den Marktstart des faltbaren Smartphones Galaxy Fold vorerst abgesagt. Nachdem die Testgeräte einiger Journalisten auch ohne ihr Zutun kaputt gegangen sind, soll das Gerät noch einmal gründlich untersucht werden.

  2. Joe Armstrong: Der Erlang-Erfinder ist gestorben
    Joe Armstrong
    Der Erlang-Erfinder ist gestorben

    Der Informatiker Joe Armstrong gilt als Erfinder der Programmiersprache Erlang und war Experte für verteilte und fehlertolerante Systeme. Armstrong erlag nun den Folgen einer Lungenerkrankung.

  3. Tchap: Forscher gelingt Anmeldung im Regierungschat Frankreichs
    Tchap
    Forscher gelingt Anmeldung im Regierungschat Frankreichs

    Kurz nach dem Start ist es einem Sicherheitsforscher gelungen, sich unberechtigt bei der Whatsapp-Alternative der französischen Regierung anzumelden. Der Forscher fand weitere vermeintliche Fehler, die laut den Entwicklern der Matrix-Software aber keine sind.


  1. 21:11

  2. 12:06

  3. 11:32

  4. 11:08

  5. 12:55

  6. 11:14

  7. 10:58

  8. 16:00