2017-10-21 22 views
1

Définissons 4 différentes classes de points:immuable vs struct et le type vs struct mutable dans Julia

type PointType 
    x 
    y 
end 

mutable struct PointMut 
    x 
    y 
end 

immutable PointImmut 
    x 
    y 
end 

struct PointStruct 
    x 
    y 
end 

Quelle est la différence entre PointType et PointMut? Pourquoi quelqu'un choisirait-il l'un plutôt que l'autre? En outre, quelle est la différence entre PointImmut et PointStruct? J'ai tendance à croire qu'ils ne sont que des synonymes, mais je n'ai pas trouvé cela explicitement, alors je me demande s'il y a une différence subtile cachée quelque part.

+0

["Dans la version 0.6, immutable et le type sont toujours autorisés en tant que synonymes sans avertissement de dépréciation."] (Https://github.com/JuliaLang/julia/blob/master/NEWS.md#language-changes-1) – Gnimuc

Répondre

10

type et immutable sont valables jusqu'à 0,6 julia, mutable struct et struct sont les noms des mêmes objets dans julia 0,6 et en avant. mutable dans mutable struct signifie que les champs peuvent changer - ce qui est en fait assez rarement utilisé, donc être immuable est la valeur par défaut. mutable struct sont plus lents que struct s.

+0

Merci, ce n'est pas trivial d'obtenir cette information. – tst

+0

c'est parce que c'est déprécié. Le fait que 'type' et' immutable' aient jamais existé sera quelque chose pour les livres d'histoire bientôt. –