Esiste un termine specifico per la variabile in un costrutto 'foreach'?

-1

La variabile utilizzata per l'iterazione in un ciclo foreach ha un termine più specifico della semplice 'variabile foreach?' Soprattutto per differenziarlo dalla variabile di raccolta?

es. item in foreach (item in collection)

Modifica: suggerita la variante Loop ( wiki ):

In computer science, a loop variant is a mathematical function defined on the state space of a computer program whose value is monotonically decreased with respect to a (strict) well-founded relation by the iteration of a while loop under some invariant conditions, thereby ensuring its termination.

A me sembra simile a "variabile di iterazione". E 'proprio vero? Avrei pensato che la "variante del loop" si riferisca al numero intero interno (o simile) utilizzato dall'enumeratore collection per il suo stato interno, non dalla variabile impostata al valore Current su ogni iterazione.

Inoltre, un enumeratore di un elenco collegato o di un enumeratore fittizio che non termina mai non ha variabili monotonicamente decrescenti, mentre allo stesso tempo il foreach loop ha la sua variabile item .

Modifica 2: La motivazione di questa domanda è trovare un nome descrittivo per un parametro in un'API di emissione bytecode. Questo parametro è un numero che si riferisce al locale che verrà impostato su ogni iterazione foreach generata. Non è un iterationLocal , sarebbe fuorviante. currentLocal potrebbe essere il nome più utile.

    
posta jnm2 03.04.2014 - 14:29
fonte

2 risposte

1

Credo che il termine che stai cercando sia la variante del loop .

UPDATE

È passato molto tempo dall'università, ma se ricordo male, i loop sono composti da varianti di loop e invarianti di loop. In parole povere, le varianti del ciclo cambiano in ciascuna iterazione, dove invece gli invarianti di loop non lo fanno. Una relazione tra le varianti di loop e gli invarianti di loop determina la condizione di terminazione del loop.

A mio avviso, per un ciclo inverso il ciclo invariante è l'oggetto enumerabile stesso e la variante del ciclo è la variabile che contiene ciascun valore.

Quando si guarda sotto i dettagli dell'implementazione, sì l'invariante è uno dopo l'ultimo elemento enumerabile e la variante è l'enumeratore, ma non sono rappresentati nel ciclo foreach. In effetti, un sacco di lavoro è andato a nascondere quei dettagli.

Tutto ciò che è rimasto in questo costrutto di ciclo è la variabile e il contenitore. È opportuno chiamare la variabile la variante e il contenitore l'invariante, perché è così che funzionano all'interno del contesto del costrutto.

    
risposta data 03.04.2014 - 16:57
fonte
0

Ho controllato 5.3.3.16 la specifica C # 5.0, ma tutto ciò che mi ha dato era foreach ( type identifier in expr ) embedded-statement . Sebbene embedded-statement funzioni bene per identificare il blocco di istruzioni di foreach , non penso che identifier sia sufficientemente specifico per essere utile.

L'interfaccia IEnumerator la chiama elemento Current .

    
risposta data 03.04.2014 - 16:54
fonte

Leggi altre domande sui tag