Unterstützt Julia statische Variablen mit Funktionsumfang?

8

In C kann man statische Variablen mit lokalem Funktionsumfang deklarieren ( Beispiel ).

Kann etwas Ähnliches in Julia gemacht werden?

Mein Anwendungsfall deklariert Unterfunktionen, möchte aber nicht, dass Julia sie jedes Mal neu analysiert, wenn der Code ausgeführt wird. Sie außerhalb der Funktion zu deklarieren ist hässlich und verleiht ihnen einen höheren Bereich, den ich vermeiden möchte.

Beispiel:

%Vor%

Während ich bar () außerhalb von foo () deklarieren könnte, würde ich bevorzugen, dass der Balken nur im lokalen Namespace liegt.

Danke.

    
Mageek 02.07.2014, 21:58
quelle

3 Antworten

12

Sie können einen neuen Bereich um die Funktion herum erstellen, um die Variable zu halten.

%Vor%

Dann wird nur foo(x) nach außen sichtbar sein

    
ivarne 03.07.2014, 06:47
quelle
4

Beachten Sie, dass y in der @ ivarne-Antwort eine Variable let sein muss oder dass y im globalen Bereich überschrieben wird:

%Vor%     
kmsquire 17.07.2014 17:21
quelle
2

Basierend auf @ Ivarnes Antwort.

%Vor%

Aber ich denke nicht, dass dies eine ideale Lösung ist. IMHO wäre es besser, ein static Schlüsselwort zu haben. Der zusätzliche Block ist unhandlich. In der Julia-Entwicklung wird darüber diskutiert:

Ссылка

Ссылка

    
becko 31.03.2016 09:28
quelle

Tags und Links