En Fortran, nous savons que nous pouvons, dans un module, définir une variable globale (utiliser la propriété private), de sorte que nous pouvons utiliser les sous-routines du module pour définir ou modifier les valeurs de cette variable. Voir ci-dessous,
module Mod
integer, parameter :: r8=selected_real_kind(15,9)
real(kind=r8), private, save :: var
contains
subroutine f(x)
real(kind=r8) :: x
var = 2.0_r8*x
end subroutine f
end
Comme nous pouvons le voir, nous pouvons appeler f(x) et définir la var dans le module comme étant 2x.
Maintenant, à Julia, on dirait que c'est en dessous,
module Mod
global var
function f(x::Float64)
global var = 2.0*x
return nothing
end
-
Je veux dire que, dans la fonction, si var est à gauche, dois-je spécifier le mot clé "global" à chaque fois ?
-
J'ai également essayé de donner un type à la variable globale, par exemple
global var::Float64
Mais cela me donne une erreur
syntax: type declarations on global variables are not yet supported
Il semble que je ne puisse faire que soit ne rien spécifier, comme juste
global var
ou lui donner une valeur tout en définissant son type,
global var=0.0::Float64
N'est-il pas préférable de donner un type à la variable globale avant de l'utiliser ?