Kurso de Raku / Progresinta / Pli pri la enkonstruitaj tipoj / Citaj konstruoj
Citaj adverboj
La konduto de cita konstruaĵo povas esti agordita per
adverboj. Ĉiu cita funkcio — interpoli skalarojn, ruli
enkonstruitajn fermojn, prilabori maldekstrajn streketojn — estas
kontrolata de sia propra adverbo, kiu ŝaltas aŭ malŝaltas tiun unu
funkcion, do vi povas komenci de q aŭ Q kaj
aldoni reen ĝuste la funkciojn, kiujn vi bezonas.
Kelkaj oftaj adverboj:
:s/:scalar— interpoli skalarajn variablojn ($x):c/:closure— interpoli enkonstruitan kodon en{ … }:b/:backslash— prilabori maldekstre-streketajn eskapojn kiel\n
Aldonu unu al q por ebligi ununuran funkcion. Ekzemple,
permesi enkonstruitan kodon sed nenion alian:
say q/result: {3 * 4}/; # result: {3 * 4} — simpla q lasas la blokon netuŝita
say q:c/result: {3 * 4}/; # result: 12 — :c ruligas la blokonKun simpla q, la { 3 * 4 } estas presita
laŭlitere; nur :c ruligas la blokon kaj enmetas ĝian
valoron, dum $variablo ankoraŭ estus lasita sola. Notu la
/…/-limigilojn ĉi tie: limigi la ĉenon per {…}
ankoraŭ funkcius — la kompililo ĝuste kalkulas la nestitajn krampojn —
sed tiam la interna { 3 * 4 } estas legita kiel parto de la
limigita teksto anstataŭ kiel fermo, do :c lasus ĝin
laŭlitera. Kiam ajn la teksto enhavas { … }-blokon, elektu
limigilon alian ol {…} por ke la fermo efektive ruliĝu. Vi
povas aldoni skalaran interpoladon al la alie-laŭlitera
Q:
my $name = 'Anna';
say Q:s{Hi, $name}; # Hi, AnnaAdverboj ankaŭ malŝaltas funkciojn per
!. Por uzi qq sed teni $
laŭlitera:
my $price = 5;
say qq:!s{costs $price dollars}; # costs $price dollarsqq ekvivalentas al Q kun ĉiuj interpolaj
adverboj ŝaltitaj, kaj q ekvivalentas al Q kun
pli malgranda aro. La adverboj donas al vi detalan kontrolon inter tiuj
du ekstremoj.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Citado | Kvizo — Citaj adverboj →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.