Corso di Raku / Avanzato / Contenitori / Avverbi di subscript
Exists e delete
L’avverbio :exists trasforma un accesso tramite indice
in una domanda: c’è un valore a questa chiave o indice? Restituisce un
booleano senza recuperare nulla:
my %h = apple => 1, pear => 2;
say %h<apple>:exists; # True
say %h<plum>:exists; # FalseQuesto è il modo corretto per verificare la presenza di una chiave,
perché leggere semplicemente %h<plum> restituirebbe
un valore indefinito oppure, a seconda dei dati, nasconderebbe la
differenza tra “assente” e “presente ma indefinito”.
L’avverbio :delete rimuove l’elemento e restituisce il
valore che conteneva:
my %h = apple => 1, pear => 2;
say %h<apple>:delete; # 1
say %h.keys; # (pear)
say %h; # {pear => 2}L’elemento apple non c’è più, e il valore eliminato
1 viene restituito così da poterlo utilizzare.
Entrambi gli avverbi funzionano anche con gli array, tramite indice:
my @a = 10, 20, 30;
say @a[1]:exists; # True
say @a[5]:exists; # False
say @a[1]:delete; # 20
say @a[1]:exists; # FalseSe sei curioso di sapere come apparirà l’array dopo la rimozione di un elemento centrale, ecco la risposta:
say @a; # [10 (Any) 30]Quindi una notazione unica e coerente ti permette di interrogare e modificare i contenitori direttamente, senza dover ricorrere a metodi separati.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Avverbi di subscript | Quiz — Avverbi di subscript →
💪 Oppure vai direttamente agli esercizi di questa
sezione.