Chapter 24 (Creating Dictionaries) incorrectly states that hash values are unique
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- godot
- Ambito
- documentation
Direzione di ricerca
Inizia con il riquadro del capitolo 24 «Come funzionano i dizionari internamente» e verifica le affermazioni sui valori hash univoci, sulle chiavi duplicate e sulle collisioni. Confronta la spiegazione con il comportamento citato di Variant::hash() e con la distinzione tra uguaglianza delle chiavi e uguaglianza degli hash; il lavoro è completato quando il testo è conciso, accurato e appropriato per il livello del corso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Issue description:
In chapter 24, in the "How dictionaries work under the hood" box it is stated: "[...]In this case, hashing consists of converting a given key into a unique whole number.[...]" (emphasis mine).
This is incorrect. The hash values are not, in general, unique. As just one counter-example: Variant::hash() in variant.cpp returns a 32 bit value while "int" in GDScript is 64 bits. It's not possible to map every 64 bit value to a unique 32 bit value.
The explanation then goes on to claim (in effect) that you can't have two of the same key in a dictionary because they would have the same hash. This is also incorrect. While you can't have two of the same keys in a dictionary, you can have two keys with the same hash value (although a good hash function would make this unlikely).
I'm not sure it's possible to have a good, correct, concise explanation of hashes and their use in dictionaries here. The space seems too limited and IMHO it's probably not the appropriate level of detail at this point in the course.
- Lingua principale
- GDScript
- Stelle
- 2.8k
- Fork
- 237
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di GDQuest/learn-gdscript
-
content
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
GDQuest/learn-gdscript#1441 ·
-
user experience
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
GDQuest/learn-gdscript#1438 ·
-
user experience
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
GDQuest/learn-gdscript#1420 ·
-
bug
Difficoltà 3/5 1-3 ore Idoneità per principianti 52/100
GDQuest/learn-gdscript#1444 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
GDQuest/learn-gdscript#1443 ·
Tutte le issue di GDQuest/learn-gdscript
Issue simili
-
effort/S kind/docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
debpalash/VoiceStudio#2903 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pharmaverse/admiraldev#580 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
aws-samples/sample-per-model-bedrock#243 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno