Udemy

Dividing Lists with SubList

Video tutorial gratuito di Stephen Grider
Engineering Architect
Valutazione: 4,6 su 5Valutazione dell'insegnante
37 corsi
1.545.560 studenti
Dividing Lists with SubList

Segui il corso completo per saperne di più

Dart and Flutter: The Complete Developer's Guide

Everything you need to know for building mobile apps with Flutter and Dart, including RxDart and Animations!

31:11:50 di video on-demand • Ultimo aggiornamento: Ottobre 2025

Build beautiful multi-screen apps with Flutter
Understand the different approaches for loading and maintaining data in Flutter apps
Create and publish open source projects using Dart
Learn how to build offline-enabled apps with incredibly efficient data loading
Comprehend the best method for reading the incredible amount of Flutter documentation
Store long-term data on a user's physical device using SQLite
Master streams and understand reactive programming to create Flutter apps
Italiano [Auto]
Nell'ultima sezione abbiamo avuto una discussione approfondita su come questo metodo sottoclasse proprio qui funzioni effettivamente. Quindi quando dice che restituisce un nuovo elenco contenente gli oggetti da un indice iniziale a un indice finale. Ora capiamo che non è in realtà un modo per copiare quegli oggetti. Non li rimuove dall'elenco originale. Stiamo solo copiando i riferimenti a quegli oggetti e non vengono mai rimossi dall'elenco originale. Con questo in mente, torneremo indietro a d'arte pad e implementeremo il nostro metodo di deal. Stiamo andando a capire come modificare effettivamente il nostro mazzo sottostante originale quando creiamo questo hant. Perché, come abbiamo appena discusso un attimo fa, se l'ideale utilizza un certo numero di carte dal mio mazzo come le carte 0 1 e 2, non dovrei assolutamente avere accesso a quelle carte quando le porto a te. Questo è tutto. Non sono più nella mia mano di carte o nel mio mazzo di carte. Non ho più accesso a loro. OK. Quindi sono tornato al d'arte pad per trovare la mia lezione di coperta. Qui è proprio qui. Vado di nuovo in fondo a quel corso. E mentre sono ancora all'interno del corpo della classe, creerò un nuovo metodo chiamato Deal. Ora, quando chiamiamo questa funzione qui probabilmente dovremo sapere quante carte stiamo cercando di distribuire a un utente. Per esempio, se stiamo giocando una partita di poker, potrei aver bisogno di distribuirti cinque carte, ma se giocheremo a un blackjack probabilmente ti occuperò solo di due carte o di qualunque cosa debba essere. Quindi, come argomento di questa funzione, mi aspetto di ricevere un numero intero che rifletta la dimensione della mano o quante carte dovrei avere in mano alla tua OK. Quindi sembra buono. Ora la prossima cosa che faremo sarà prendere la nostra lista di carte e chiameremo quel sottocategoria. In pratica chiamiamo il metodo più sottile su di esso due volte. Sì, lascia che ti dia un breve schema di come funzionerà questa cosa. Chiameremo questo metodo di sublocazione. Due volte la prima volta che tu e io estrarremo un certo numero di carte che saranno restituite a chiunque abbia chiamato questa funzione, chiameremo il metodo di sublocazione una seconda volta e in quella seconda chiamata Ricordiamo che noi in realtà non rimuovendo queste carte di per sé. Fammi copiare incollali di nuovo qui per riflettere la realtà. Quindi nella prima chiamata pubblicata creeremo questa seconda lista quaggiù dove questo tipo di mano che restituiremo. E poi in un secondo per chiamare alla sottocartella tireremo fuori tutte le carte rimanenti. Quindi, come tre quattro o cinque qui, ci darà una nuova lista. Prenderemo quella lista e la assegneremo alla lista delle carte correnti. Quindi, in altre parole, chiameremo una sottolista una seconda volta. Stiamo per ottenere una nuova lista qui. Stiamo per buttare via questa lista e poi diremo che la nuova lista di carte che appartiene alla nostra classe di carte è solo le restanti tre quattro e cinque. Quindi in pratica chiameremo due volte la sublocazione e useremo queste due diverse sezioni, una che andrà a chiunque abbia chiamato il metodo deal e l'altra andrà alle proprietà della carta. Sulla nostra classe di mazzo, penso che una volta che scriviamo il codice per questo, sarà molto più sensato. Quindi qui dentro l'affare intendo per prima cosa creare la mia mano di carte o il tipo di mazzo o l'elenco di carte che stiamo per restituire da questa funzione. Quindi salveremo la mano var è la sotto-lista di Carte Dotts e prenderò tutte le carte da zero a mano. Così. Quindi in questa riga di codice qui stiamo creando una nuova lista e stiamo copiando il riferimento a quella nuova lista e noi assegniamo tutto ciò a portata di mano. Dopo di ciò, vado di nuovo a chiamare le carte in modo sublimatico e prenderemo tutte le carte che rimangono in questa mano. A partire dalle dimensioni della mano. Quindi notate come proprio qui abbiamo preso tutto dalle dimensioni iniziali a quelle delle mani. Poi su sottoclasse qui andremo a prendere tutto ciò che è rimasto nel mazzo. Quindi diremo le dimensioni della mano ora per andare fino alla fine della lista qui stanno ottenendo tutte le carte rimanenti. Se torni indietro e guardi la documentazione qui, noterai che attorno a Oops ho cliccato accidentalmente su di esso. Chiedo scusa. Iniziamo ora. Torna indietro OK, in modo che intorno a quel secondo argomento ci giriamo attorno al secondo argomento, abbiamo un set di parentesi quadre proprio lì. Quindi, ogni volta che vedi queste parentesi quadre attorno a un elenco di argomenti significa che si tratta di un argomento facoltativo. Quindi, in altre parole, se non passiamo a un argomento finale proprio qui, la sottolista andrà automaticamente fino alla fine della lista e prenderà tutto ciò che rimane lì dentro. Quindi tutto ciò che dobbiamo fare è passare nella sotto-lista come primo argomento qui e quindi non dobbiamo passare in un secondo argomento. Quindi questa linea di codice qui prenderà tutte le carte rimanenti all'interno del nostro elenco di carte e poi prenderemo quella nuova lista che verrà restituita e sovrascriviamo il nostro attuale elenco di carte con quello . E poi finalmente restituiremo la mano che abbiamo creato. E questo è praticamente tutto. OK. Quindi proviamo ora e torniamo al mio metodo principale. Ho intenzione di fare un po 'di cambiamento all'interno del nostro metodo principale qui. Torniamo al punto in cui avevamo il mazzo. Inizierò stampando il mazzo. Quindi inizieremo semplicemente e diciamo hey cosa abbiamo qui. Chiamerò quindi la stampa sul mazzo di punti e cercherò di occuparmi di cinque carte. Quindi ora vedremo due dichiarazioni di stampa. Vedremo il mazzo originale completamente non modificato. Vedremo quindi una mano di sole cinque carte o un elenco di cinque carte da solo e stamperà di nuovo il mazzo. Quindi il secondo mazzo qui dovrebbe avere cinque carte in meno all'interno perché abbiamo preso cinque carte e le abbiamo distribuite anche noi. Non conosco qualcuno che sta giocando il nostro gioco presumibilmente. Va bene, diamo una possibilità a questo scatto una corsa veloce qui. Dagli un secondo oh si blocca tutto il maledetto tempo. Proviamo di nuovo. Ci andiamo molto meglio. OK. Quindi qui vedrai qui è il nostro elenco di carte originale. Ecco tutte le carte che creiamo all'interno del nostro mazzo. Poi proprio qui vedo uno due tre quattro e cinque carte. Sono stati portati dentro la nostra mano. E poi vediamo proprio qui che chiaramente non li conteremo tutti. Ma chiaramente ci sono meno carte all'interno di qui e là, quindi possiamo fare un rapido confronto qui. Notate come nella lista originale avevamo cinque carte di diamanti. Quei diamanti sono ora nella mano e non sono più all'interno dell'elenco delle carte che appartengono alla nostra vera classe di mazzo OK. Quindi so che questa roba da subaffitto era un po 'pazza. Ma ricorda che l'obiettivo generale di ciò che stavamo cercando di comunicare qui è che ogni volta che creiamo un elenco di record, la lista in realtà non memorizza i nostri record. I record esistono all'interno della memoria e l'elenco fa semplicemente riferimento ai record. OK, così ora che abbiamo una soluzione migliore continuiamo nella prossima sezione.