Sono novizio in Perl
e sto leggendo sugli array.
Come ho capito gli array si espandono automaticamente in base alle esigenze (cool!)
Ma ho anche letto che possiamo utilizzare gli indici negativi per accedere agli array in ordine inverso.
E.g. un array di 3 elementi può essere letta come:
$array[0] $array[1] $array[2]
o
$array[-1] $array[-2] $array[-3]
(in ordine inverso).
La mia domanda è cosa succede per valori inferiori a -3
ad es. $array[-5]
?
L'array si espande o qualcosa del genere?Array e indici negativi in Perl
risposta
Se lo si legge, il risultato è lo stesso di lettura $array[5]
- il valore non esiste e ottieni un indebolimento. Andando via alla fine a sinistra e andando via alla fine a destra sono gli stessi.
Se lo scrivi, ricevi un errore. Gli array possono solo estendersi automaticamente a destra.
Ho una build speciale di Perl dove i miei array mi affrontano prima zero-end. Possono solo estendersi automaticamente da me. – Borodin
Non si può, si getta l'errore:
Modifica del valore di matrice non creabile tentato, pedice -2
Si ottiene un valore undef se si legge il valore.
use strict;
use warnings;
my @l = qw(A B C);
print $l[-4];
uscita a stderr (programma continua a funzionare):
Use of uninitialized value in print at ./x.pl line 7.
Oppure:
my @l = qw(A B C);
print "undef" if !defined $l[-4];
uscita:
undef
Se si desidera assegnare un valore alla Si ottiene un errore:
my @l = qw(A B C);
$l[-4] = "d";
uscita (programma esce):
Modification of non-creatable array value attempted, subscript -4 at ./x.pl line 7.
E in realtà l'intervallo può essere modificato. Quindi, un array può iniziare a qualsiasi valore non solo 0.
my @l = qw(A B C);
$[ = -4; # !!! Deprecated
print $l[-4], "\n";
print $l[-3], "\n";
uscita:
A
B
- 1. Implementazione di array con indici negativi
- 2. Gli indici di array negativi sono consentiti in C?
- 3. Come implementare gli indici negativi in java?
- 4. php - array_fill indici negativi
- 5. indici circolari numpy array
- 6. Perl, convertire l'hash in array
- 7. Inizializzazione di array in Perl
- 8. Numeri casuali e negativi
- 9. manipolazione array Perl
- 10. modifica di array a Haskell e ricordando indici
- 11. Hash di array in Perl: attraversamento e cancellazione
- 12. Come sono gli array di indici MongoDB?
- 13. disimballaggio tuple/array/liste come indici per NumPy Array
- 14. Utilizzo di indici in array json in PostgreSQL
- 15. Incremento array Numpy con indici ripetuti
- 16. Che cos'è un array magico in Perl?
- 17. Come posso confrontare gli array in Perl?
- 18. StratifiedKFold: IndexError: troppi indici per array
- 19. Come vengono implementati gli array in Perl?
- 20. Ruby accede a più array elemenet per indici (sotto array)
- 21. saltando una linea in un array, Perl
- 22. Indici e l'utilizzo di chiavi primarie come indici in MySQL
- 23. Riferimenti in Perl: Array of Hashes
- 24. Array in valore di hash perl
- 25. Uso di iteratori su indici di array
- 26. OCaml Int e negativi valori
- 27. Gli indici array sono basati su 0 in VB6?
- 28. Ottieni indici per permutazione ordinata di un array in Ruby?
- 29. Ottieni indici di n massimi in array java
- 30. Trova indici di valori comuni in due array
provarlo. Questi tipi di domande fanno bene a te stesso per risolvere te stesso – chrsblck
perché non lo provi? – marcadian
Posso provarlo ma sto cercando di capire il modello di memoria, se questo ha senso in Perl. Se non riesco a chiudere la domanda – Cratylus