Che cos'è un indicizzatore?

1

I documenti C # hanno una pagina sugli indicizzatori , che sembra usa "indicizzatore" per fare riferimento al costrutto richiesto per abilitare le istanze di una classe a cui accedere tramite notazione a parentesi quadre.

Indexers allow instances of a class or struct to be indexed just like arrays.

// Define the indexer to allow client code to use [] notation.
public T this[int i]
{
   get { return arr[i]; }
   set { arr[i] = value; }
}

D'altra parte, i documenti panda usano "indicizzatore" in diversi modi. Innanzitutto, gli attributi DataFrame come ix , loc e iloc esistenti per abilitare diversi tipi di operazioni di indicizzazione su DataFrame le istanze sono chiamati indicizzatori stessi. Ad esempio, vedi la prima riga nei documenti per ix :

A primarily label-location based indexer, with integer position fallback.

Eppure "indicizzatore" è anche usato altrove per riferirsi all'argomento passato tra parentesi quadre:

.iloc is strictly integer position based (from 0 to length-1 of the axis), will raise IndexError if an indexer is requested and it is out-of-bounds, except slice indexers which allow out-of-bounds indexing.

Entrambi questi usi si trovano anche nel codice sorgente , quindi è coerente.

La pagina di Wikipedia per gli indicizzatori non aiuta a distinguere tra tutti gli esempi sopra, sebbene la pagina in generale sembra distorto all'uso dei documenti C #.

In object-oriented programming, an indexer allows instances of a particular class or struct to be indexed just like arrays.

Che cos'è un indicizzatore? Tutti questi usi sono corretti? Cosa mi manca?

    
posta Ninjakannon 30.06.2017 - 19:37
fonte

1 risposta

4

Non esiste una definizione universalmente accettata di "indicizzatore".

Ogni lingua / framework potrebbe sovraccaricare il nome per il proprio uso.

Come hai sottolineato, di solito ha qualcosa a che fare con la capacità di "indicizzare" una cosa. Ma questo è quanto qualsiasi somiglianza tra i suoi usi.

    
risposta data 30.06.2017 - 19:50
fonte

Leggi altre domande sui tag