Welche Zeichen sind in Hash Keys gültig?

8

Wie pro Thema: Was sind die Zeichen, die in Hash-Tasten verwendet werden können, oder, wenn es kürzer ist, welche können nicht verwendet werden?

Gibt es auch Probleme bei der Verwendung langer Hash-Schlüssel (wie vollständige Pfadnamen)?

    
Matteo Riva 15.12.2009, 10:00
quelle

4 Antworten

19

Siehe Wie funktioniert das wirklich? für eine Diskussion zu diesem Thema. Kurz gesagt, solange Sie den Schlüssel zitieren (nicht interpolierend q {}), können Sie die gewünschten Zeichen verwenden.

Was Danas Antwort angeht, nein, es wird nicht länger dauern, bis längere Schlüssel gefunden werden: es wird unendlich viel länger dauern, den Schlüssel zu hashen, aber das ist alles.

Als Referenz ist dies die Hash-Funktion in Perl 5.10.0:

%Vor%     
Pedro Silva 15.12.2009, 10:25
quelle
6

Sie können jedes Zeichen verwenden, das in einer Zeichenfolge gültig ist. Länge ist auch kein Problem. Perl wird mit allem fertig werden:)

    
dave 15.12.2009 10:02
quelle
6

Ein Punkt, der noch nicht angesprochen wurde, ist, dass Sie eine beliebige gültige Zeichenfolge als Hash-Schlüssel verwenden können. Wenn Sie versuchen, etwas anderes als eine Zeichenkette zu verwenden, wird es automatisch mit einem String versehen, was bedeutet, dass z. B.

%Vor%

verwendet die Zeichenfolge "ARRAY (0xdeadbeef)" (oder eine andere Adresse) als Hash-Schlüssel, nicht die tatsächliche Array-Referenz.

    
Dave Sherohman 15.12.2009 11:35
quelle
5

Sie können jedes Zeichen in einem Hash-Schlüssel verwenden --- ein Hash-Schlüssel ist nur eine Zeichenfolge. Aber für einige Zeichen müssen Sie die Zeichenfolge angeben. Wenn Sie Zweifel haben, setzen Sie einfach die Anführungszeichen um den Schlüssel.

%Vor%

Es gibt kein spezielles Problem mit langen Schlüsseln, die Sie noch nicht mit langen Strings haben.

    
dave4420 15.12.2009 10:19
quelle

Tags und Links