Masīva atsauces dažādi lietojumi
Masīva atsauces mainīgo izmantošana dažādiem mērķiem ir parādīta tālāk.
Masīva mainīgais | Masīva atsauces mainīgais | Mērķis |
@masīvs | @{ $ref_array } | To lieto, lai atsauktos uz visām masīva vērtībām. |
skalārs @masīvs | skalārs @ref_array | To izmanto, lai saskaitītu kopējo masīvu skaitu. |
$#masīvs | $#ref_masīvs | To izmanto, lai definētu lielāko indeksu. |
$masīvs[indekss] | $tef_array->[indekss] | To lieto, lai atsauktos uz konkrēto masīva elementu. |
Perl masīva atsauču lietojumi
Šajā apmācības daļā ir parādīti dažādi Perl masīva atsauces mainīgo lietojumi.
1. piemērs. Izveidojiet masīva atsauci
Izveidojiet Perl failu ar šādu skriptu, kas deklarē četru virkņu vērtību masīvu un šī masīva atsauces mainīgo. Atsauces mainīgais saglabā galvenā masīva atmiņas vietu, un abiem mainīgajiem ir viena un tā pati atrašanās vieta. Atsauces mainīgā un galvenā masīva saturs tiek izdrukāts vēlāk.
#!/usr/bin/perl
izmantojiet stingru ;
izmantot brīdinājumus ;
izmantot 5.34.0 ;
izmantot Data::Dumper ;
#Deklarēt virknes masīvu
mans @ klaidonis = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;
#Izveidojiet atsauci uz masīva mainīgo
mans $ref_array = \ @ klaidonis ;
saki 'Masīva atsauces saturs ir $ref_array' ;
saki 'Masīvu vērtības, izmantojot Dumber mainīgo, ir: ;
#Izdrukājiet atsauces mainīgo ar mainīgo Dumper
drukāt Pašizgāzējs $ref_array ;
Izvade:
Palaižot skriptu, tiek parādīta šāda izvade:
2. piemērs. Atjauniniet masīvu pēc atsauces izveides
Izveidojiet Perl failu ar šādu skriptu, kas parāda, ka, mainot kādu no galvenā masīva elementiem, vienlaikus tiek mainīta atbilstošā atsauces masīva mainīgā vērtība. Visas galvenā masīva vērtības tiek izdrukātas pirms jebkuras masīva vērtības atjaunināšanas, un visas atsauces masīva vērtības tiek izdrukātas pēc otrā elementa atjaunināšanas, izmantojot mainīgo “dump”.
#!/usr/bin/perl
izmantojiet stingru ;
izmantot brīdinājumus ;
izmantot 5.34.0 ;
izmantot Data::Dumper ;
#Deklarēt virknes masīvu
mans @ klaidonis = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;
saki 'Galvenās masīva vērtības ir: ;
#Izdrukājiet atsauces mainīgo ar mainīgo Dumper
drukāt pašizgāzējs \ @ klaidonis ;
#Izveidojiet atsauci uz masīva mainīgo
mans $ref_array = \ @ klaidonis ;
#Atjauniniet masīva 2. elementu
$strarr [ 1 ] = 'C++' ;
saki 'Atsauces masīva vērtības (pēc galvenā masīva atjaunināšanas) ir: ;
#Izdrukājiet atsauces mainīgo ar mainīgo Dumper
drukāt Pašizgāzējs $ref_array ;
Izvade:
Pēc skripta izpildes tiek parādīta šāda izvade. Saskaņā ar izvadi atsauces masīvā otrais elements tiek mainīts uz “C++”, jo galvenā masīva otrais elements tiek atjaunināts ar “C++” vērtību:
3. piemērs: nododiet masīva atsauci apakšprogrammā
Izveidojiet Perl failu ar šādu skriptu, kurā masīva atsauces mainīgais tiek nosūtīts kā apakšprogrammas arguments. Masīva trešā indeksa vērtība tiek atjaunināta, izmantojot atsauces mainīgo apakšprogrammas iekšpusē. Galvenā masīva vērtības tiek drukātas pirms un pēc atsauces mainīgā trešā indeksa atjaunināšanas, izmantojot mainīgo “dump”.
#!/usr/bin/perlizmantojiet stingru ;
izmantot brīdinājumus ;
izmantot 5.34.0 ;
izmantot Data::Dumper ;
#Deklarējiet skaitļu masīvu
mans @ cipariem = ( 67 , 3. 4 , 90 , 12 , 39 ) ;
saki 'Galvenā masīva vērtības pirms atjaunināšanas:' ;
drukāt pašizgāzējs \ @ cipariem ;
#Nododiet masīvu kā atsauci apakšprogrammā
lasīt_masīvs ( \ @ cipariem ) ;
#Deklarēt apakšprogrammu, lai mainītu masīva vērtību
apakšlasīšanas_masīvs
{
#Definējiet masīva atsauces mainīgo
mans $arr_ref = $_ [ 0 ] ;
#Atjauniniet masīva trešo elementu
$arr_ref- > [ 2 ] = 99 ;
}
saki 'Galvenā masīva vērtības pēc atjaunināšanas:' ;
drukāt pašizgāzējs \ @ cipariem ;
Izvade:
Pēc skripta izpildes tiek parādīta šāda izvade. Trešais masīva elements bija 90, un šī vērtība tiek mainīta uz 99, izmantojot masīva atsauces mainīgo. Sākotnējā masīva trešais elements tiek atjaunināts arī par 99, jo abiem mainīgajiem ir viena un tā pati atrašanās vieta:
Secinājums
Šajā apmācībā ir parādītas metodes, kā piekļūt masīva vērtībām vai tās atjaunināt, izveidojot masīva atsauces mainīgo. Pēc šīs apmācības izlasīšanas Perl lietotāji iegūs skaidru priekšstatu par Perl masīva atsauces mainīgo izmantošanu.