Asocia tabelo
Asocia tabelo estas abstrakta datumtipo por teni duopojn de la formo (ŝlosilo, valoro) kaj almenaŭ la operaciojn por
- aldoni tian duopon:
ENŜOVU(ŝlosilo, valoro) - Serĉo per ŝlosilo:
TROVU(ŝlosilo) - Forigo per ŝlosilo:
FORIGU(ŝlosilo)
Kutime disponeblas ankaŭ kelkaj pli specialaj rimedoj, ekz-e la eblo ricevi liston da ĉiuj difinitaj ŝlosiloj aŭ alia maniero por iteracii tra ĉiuj paroj.
Asocia tabelo ne povas enteni du parojn kun egalaj ŝlosiloj.
Oni diras, ke en la paro (ŝ, v) la valoro v estas asociita kun la ŝlosilo ŝ. Semantiko kaj la simbolaro de la indikitaj operacioj povas varii.
La operacio TROVU(ŝlosilo) liveras la valoron, asociitan kun la donita ŝlosilo, aŭ iun specialan objekton NEDIFINIA, kio indikas, ke nenia valoro estas asociita kun la ŝlosilo. La du aliaj operacioj ne liveras rezulton (krom, eventuale, indikon pri sia sukceso aŭ malsukceso).
Interface asocia tabelo similas la enkonstruitajn tabelojn de la ĝeneralcelaj programlingvoj (kiaj Fortrano, Algolo, Paskalo, C), kun tiu diferenco, ke estkiel indicojn oni rajtas uzi ne nur entjerojn, sed ankaŭ alitipajn ŝlosilojn, precipe signoĉenojn (kutime ŝlosilo estas ĝuste signoĉeno). Tiun similecon emfazas AWK, la unua grava programlingvo kie aperis asociaj tabeloj, kaj kie tiu tipo eĉ havas la nomon angle array:
BEGIN {
tabelo["Vikipedio"] = "Libera enciklopedio";
tabelo[2015, 5, 31] = "dimanĉo";
tabelo[255] = 3.14;
if ("Vikipedio" in tabelo)
print tabelo["Vikipedio"];
print tabelo[2015, tabelo[255] * 2 - 1.28, 31];
}
La eligaĵo:
$ awk -f t.awk Libera enciklopedio dimanĉo $
(En ĉi tiu peco ni vidas la kroman operacion in, kiu ebligas testi eneston de paro kun koncerna ŝlosilo; tio anstataŭas la specialan pseŭdovaloron NEDIFINIA, ĉi-supre menciitan; fakte, en AWK serĉo per nedifinita ŝlosilo liveras la malplenan signoĉenon.)
Asociaj tabeloj disponeblas en programlingvaj bibliotekoj aŭ estas enkonstruitaj en programlingvon mem — ekz-e en la programlingvojn AWK, Perl, Python, Ruby, PHP, Tcl.
Estas pluraj manieroj realigi asociajn tabelojn. La plej ofte uzataj estas per hakettabelo aŭ per serĉarbo.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.