Quelles sont anonymes hachages en perl?
$hash = { 'Man' => 'Bill',
'Woman' => 'Mary,
'Dog' => 'Ben'
};
Quoi exactement Perl “anonyme hachages”?
Que de hachage de référence n'est pas anonyme, car il est stocké dans la variable
Philosophiquement parlant, est une référence à un anonyme de hachage.
Je pense que c'est d'être trop pointilleux. Le 5-chaîne de caractères
Il y a donc beaucoup de la pensée claire ici. Un hachage de référence pas anonyme, seul le hachage de lui-même. La référence peut se référer à une table de hachage qui a un nom, ou à celui qui n'est pas le cas: si vous utilisez des références, puis le namedness de la table de hachage n'est pas pertinent.
hachage de référence pas anonyme" -- Oh?
$hash
.Philosophiquement parlant, est une référence à un anonyme de hachage.
%hash
est un nom de hachage, $hash
n'est pas seulement une référence. La référence peut pointer vers une table de hachage, cependant.Je pense que c'est d'être trop pointilleux. Le 5-chaîne de caractères
%hash
est un nom, pas une table de hachage, mais il est parfaitement raisonnable de se référer à la table de hachage que des noms comme %hash
, qui est un nom de hachage. Tout comme "Kenosis"
est un nom, pas une personne, mais la Kénose est une personne. (En supposant que vous n'êtes pas un bot, bien sûr.)Il y a donc beaucoup de la pensée claire ici. Un hachage de référence pas anonyme, seul le hachage de lui-même. La référence peut se référer à une table de hachage qui a un nom, ou à celui qui n'est pas le cas: si vous utilisez des références, puis le namedness de la table de hachage n'est pas pertinent.
hachage de référence pas anonyme" -- Oh?
my $hash_ref_ref = \{'foo' => 'bar'};
OriginalL'auteur user1363308 | 2013-01-05
Vous devez vous connecter pour publier un commentaire.
C'est une référence à un hachage qui peut être stockée dans une variable scalaire. C'est exactement comme un hachage, sauf que les accolades
{...}
crée un référence à une table de hachage.Remarque l'utilisation de différents parenthèses dans ces exemples:
Cela est utile pour être en mesure de le faire, par exemple si vous souhaitez passer un hachage comme argument à une sous-routine:
Et c'est une façon de créer un multi-niveaux de hachage:
\%hash
n'est pas plus un direct de référence que{ foo => "bar" }
. Vous le laissez entendre que ce dernier est une référence indirecte.Ce n'est pas un hachage sans nom. Un "hash" est la variable précédée d'un signe de pourcentage.
{ ... }
crée une référence à un hachage. Comme les conteneurs de données, ils sont les mêmes, mais dans la pratique, ils sont différents.Je comprends la confusion maintenant. Je voulais parler de la pratique de l'aide
{}
crée une référence, pas anonyme de hachage est quelque chose de différent. Qui, au passage, vous pourriez avoir ramassé sur, quand j'ai dit "C'est exactement comme un hachage".OriginalL'auteur TLP
Vous utilisez un anonyme de hachage lorsque vous avez besoin de référence à un hachage et un nom de hachage n'est pas pratique ou inutiles. Par exemple, si vous vouliez passer un hachage à une sous-routine, vous pouvez écrire
mais si il n'est pas nécessaire pour accéder à la table de hachage par son nom
%hash
vous pourriez écrire de manière équivalenteC'est pratique partout où vous avez besoin d'une référence à un hachage, et en particulier lorsque vous êtes à la construction de structures de données imbriquées. Au lieu de
vous pouvez écrire tout
et ajouter un membre,
est beaucoup plus lisible qu'
et bien sûr, même si un hachage est créé avec un nom, si sa référence est passée ailleurs, il peut y avoir aucun moyen de l'utiliser de nom d'origine, elle doit donc être considérée comme anonyme. Par exemple, dans
$crew_member
est à présent une référence à un anonyme de hachage, indépendamment de la façon dont les données ont été initialement construit. Même si les données sont (dans une certaine étendue) toujours accessible que%person1
il n'existe pas de moyen de savoir que, et les données ne peuvent être consultées que par sa référence.OriginalL'auteur Borodin
C'est assez simple. Ils vous permettent d'écrire
au lieu de
(Si vous voulez savoir la fin de références, c'est une autre histoire entièrement.)
OriginalL'auteur ikegami