Mi sto un po 'annoiando di dover avvolgere i tipi primitivi negli oggetti wrapper per archiviarli in strutture di raccolta dati (insiemi, mappe, liste, ecc.) in linguaggi come Java e Objective C. Mi piacerebbe molto avere, ad esempio, una struttura di dati Mappa che funziona allo stesso modo, sia che io stia mappando NSNumbers a Stringhe o interi a doppio o intero a MyBigCustomObject *.
La mia comprensione è che il motivo per cui le strutture dei dati di raccolta in questi linguaggi richiedono il wrapping in un oggetto è che si può sempre presumere che il numero dato sia un puntatore - In realtà posso creare un NSDictionary con [ Dizionario NSDictionaryWithObject: MyCustomObject forKey: 1], ma considera 1 come puntatore invece di un intero, prova ad accedere all'indirizzo di memoria 1 e segfault. Ma non vedo alcun motivo per cui non sia possibile creare una struttura dati di raccolta che tenga traccia del tipo di chiavi e valori che non avrebbero questo problema. Anche una struttura di dati relativamente inflessibile come una mappa di specificità per specifici puntatori agli oggetti sarebbe un caso d'uso decente comune (ne potrei certamente usare uno, sto facendo molto lavoro di recente che implica l'indicizzazione di oggetti da parte di un ID intero). C'è una ragione per cui questo non è un paradigma comune nei linguaggi che hanno una distinzione di tipo Oggetto / primitivo?