Corso di Raku / Avanzato / Moduli / Pacchetti e namespace / Exercises / Un nome annidato
Soluzione: Un nome annidato
Ecco una possibile soluzione al compito.
Codice
module Outer {
module Inner {
our $base = 10;
our sub doubled { $base * 2 }
}
}
say $Outer::Inner::base;
say Outer::Inner::doubled();🦋 Puoi trovare il codice sorgente nel file nested-name.raku.
Output
10
20Commenti
Annidare un namespace all’interno di un altro costruisce un percorso
::più lungo. Sia la variabile che la subroutine si trovano a due livelli di profondità, inOuter::Inner.Il nome completo
$Outer::Inner::baseraggiunge la variabile, eOuter::Inner::doubled()raggiunge la subroutine attraverso gli stessi due livelli. Il nome di una sub non ha sigillo, quindi a differenza della variabile non ha$davanti.Entrambi i membri sono dichiarati con
our, che è ciò che li rende visibili fuori dal loro modulo. Una dichiarazionemyli avrebbe mantenuti privati all’interno diInner.