Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 28269|Atbildi: 1

[Avots] Tuples izmantošana Java

[Kopēt saiti]
Publicēts 31.08.2021 11:22:41 | | | |
Tuples ir īpaša nozīme datoru jomā, šis nosaukums var izklausīties nedaudz nepazīstams, un koda rakstīšanā būtībā nav pielietojuma scenāriju, tomēr, pārsteidzoši, tuples ir cieši saistītas ar programmēšanu, daži studenti var nezināt, ka cits akadēmiskais nosaukums "ierakstiem" relāciju datu bāzēs ir "tuples", ieraksts ir tuple, tabula ir attiecība, ieraksti sastāv no tabulām, tuples ģenerē attiecības, tas ir relāciju datu bāzu pamatjēdziens.

Tuples ir relāciju datu bāzes neatņemama sastāvdaļa, taču programmēšanā tās nav tik nepieciešamas. Dažām programmēšanas valodām ir sava tuple sintakse, piemēram, python, F#, haskell, scala utt., bet citas ir populārākas, bet tām nav tuple sintakses, piemēram, Java, JavaScript, C++, C# utt.

Tuples nav neaizstājami programmēšanas elementi, piemēram, masīvi un objekti, bet to izmantošana var būt ļoti ērta koda rakstīšanai, it īpaši, ja funkcijai ir jāatgriež vairākas vērtības. Šajā gadījumā parastā prakse ir definēt objektu, iestatīt vērtību, kas funkcijai jāatgriež kā objekta atribūts, un pēc tam iestatīt funkcijas atgrieztās vērtības tipu uz objekta tipu. Vai arī šī funkcija var atgriezt kartes datu struktūru, kurā pastāv konkrētie dati. Tomēr abām pieejām ir savi trūkumi, un pirmā metode ir uzticama, bet kods ir neparasti uzpūsts. Pašas prasības ir ļoti vienkāršas, ja vien funkcija atgriež vairākas vērtības, bet šī metode prasa iepriekš definēt tipu, pēc tam to instancēt, pēc tam iestatīt instances rekvizītus un visbeidzot atgriezties, kas ir pārāk neefektīvi. Lai gan otrā metode ir ātra, bet nav pietiekami droša, funkcijas iekšpusē var zināt, kāda veida vērtība tiek saglabāta kartē, bet ārpus funkcijas, tikai zināt, ka šīs funkcijas atgriešanās vērtība ir karte, kā par to, kādas vērtības tiek saglabātas kartē, kāds veids nav zināms, vairāku personu attīstības projektos Šis trūkums ir īpaši acīmredzams, diemžēl šī prakse ir vēlamais risinājums dažās dinamiski drukātās valodās, kas ir arī viens no galvenajiem iemesliem, kāpēc dinamiski drukātās valodas tiek sūdzētas par sliktu drošību un lasāmību. Tāpēc labākais risinājums šāda veida problēmām ir izmantot tuples.

Valodās, kurās pati sintakse atbalsta tuples, tuples tiek attēlotas ar iekavām, piemēram, (int, bool, string) ir trīskāršs tips, un tā vērtība var būt (1, true, "abc"). Jāatzīmē, ka katrs tuple tips ir unikāls, (int, bool), (bool, int), (virkne, dubultā) ir visi binārie, bet tie ir dažādi tuples, ja jūs šeit ņemat noteiktu tuple kā funkcijas atgriešanās vērtību, lai gan tas nav tik labs kā pirmais risinājums, izmantojot iepriekš minētos pielāgotos tipus lasāmības un drošības ziņā, bet tas ir daudz labāks nekā otrais risinājums, izmantojot karti, vismaz izmantojot tuples var zināt, cik daudz vērtību funkcija atgriezīs, Kāda veida vērtība ir šīs vērtības, un tā priekšrocība ir vienkārša un ātra kodēt otru shēmu, izmantojot karti.

Par laimi, šīs programmēšanas valodas tagad atbalsta ģenēriskos vārdus, un neiebūvēto tupelu ieviešana ir kļuvusi ārkārtīgi vienkārša, bet galu galā tas ir iebūvēts sintakses elements, kas nav valoda, un tas noteikti nav tik ērti lietojams kā vietējās tuples.

Tālāk tiek iepazīstināta ar trešās puses Java tuples bibliotēku, ko sauc par Javatuples, ar savu oficiālo mājaslapu un simtiem github zvaigžņu, kas gandrīz spēlē monopolstāvokli Java tuples jomā.

Javatuples definē tuple ar maksimālo garumu 10, bet es domāju, ka elementu skaits 10 tuple jau ir pārāk daudz, un būtībā nav lasāmības. Tuple klases definē šādi:

Vienība<A> (1 elements)

Pāris<A,B> (2 elementi)

Triplets<A,B,C> (3 elementi)

Kvartets<A,B,C,D> (4 elementi)

Kvintets<A,B,C,D,E> (5 elementi)

Sekstets<A,B,C,D,E,F> (6 elementi)

Septets<A,B,C,D,E,F,G> (7 elementi)

Oktets<A,B,C,D,E,F,G,H> (8 elementi)

Ennead<A,B,C,D,E,F,G,H,I> (9 elementi)

Dekāde<A,B,C,D,E,F,G,H,I,J> (10 elementi)

Šīs arhetipiskās klases ir vispārējas klases, tāpēc burtus leņķa iekavās var aizstāt ar patvaļīgiem tipiem. Zemāk ir binārā koda piemērs





Izdarot secinājumus, pārējie tuple veidi tiek izmantoti tādā pašā veidā.

Tā kā pati valoda neatbalsta Java tuples, kods izskatās jāvaniešu un mazāk elegants. Tomēr, rakstot kodu, papildus rakstīšanas ērtībai var uzlabot efektivitāti, ir svarīgāk pievērst lielāku uzmanību paša koda izteiktajai nozīmei, proti, izmantot paša tuple nozīmi (funkciju), lai uzlabotu kodu, un tas, kā to rakstīt, faktiski ir tikai sekundārs.

Visbeidzot, jāatzīmē, ka tips vispārējās leņķa iekavās nevar būt Java pamata tips, ja vēlaties izmantot pamata tipu, tam jābūt arī pamata tipam, kas ir ievietots kastē, piemēram, int tips ir jāpārvērš par veselu skaitli, un bool tips atbilst Būla tipam.




Iepriekšējo:POI CellStyle iestata šūnas fona krāsu
Nākamo:.NET/C# MailKit apmācība pasta nosūtīšanai [ar avota kodu]
 Saimnieks| Publicēts 15.09.2021 10:55:08 |
Jums jāizmanto maven, lai ieviestu šādas atkarības:


Javatuples ļauj mums izveidot līdz desmit atgrieztajām vērtībām


Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com