‫Welkom terug en deze video, we gaan het werk dat we hadden repareren en we gaan kijken hoe we het
‫kunnen oplossen.
‫Dus in dit voorbeeld is het een heel eenvoudige.
‫En we weten echt dat we deze methode hebben die de logica doet.
‫Rechts.
‫Dus dit is degene die erachter komt of een vriend een feestvriend is of niet.
‫En dat is iets dat je over het algemeen zal helpen bij het debuggen, want als je weet
‫wat een specifieke methode zal doen, dan kun je op dat punt een breekpunt maken.
‫Oke.
‫Dus als je in een programma werkt dat je nog nooit eerder hebt gebruikt, dan
‫moet je er natuurlijk eerst naar kijken en begrijpen wat alle methoden doen.
‫En daarom zou het hier natuurlijk handig zijn om een samenvatting te hebben van wat hier aan de hand is.
‫Oke.
‫Dus leg uit, oké, wat doet dit?
‫Wat is de samenvatting van deze methode?
‫Dus je kunt gewoon triple gebruiken.
‫Ja, vuiler.
‫En dan kun je een kleine samenvatting toevoegen.
‫Dus dit is de logica om erachter te komen wie A een feestvriend is of wie een feestvriend zal zijn of iets dergelijks.
‫Het is geen perfect Engels, maar ik denk dat je begrijpt wat het idee is.
‫Dus als je dat eenmaal doet, weet je, oké, oké.
‫Dit is waar de logica zit en ons programma werkt vanzelf.
‫Rechts?
‫Het werkt dus min of meer zoals bedoeld, behalve natuurlijk dat het ons aan vrienden laat zien dat we een lange naam hebben
‫en niet degenen met een korte naam.
‫Dus hoogstwaarschijnlijk ligt het probleem in de logica, hoe we iets selecteren.
‫Dus hier konden we al zien of ik waarschijnlijk dit de methode is waar we het probleem hebben, zodat we
‫dit breekpunt en dit ook kunnen verwijderen.
‫En dan kunnen we hier onze werkwijze bekijken.
‫Dus laten we gewoon een breekpunt toevoegen aan de arget party friend-methode en dan kunnen we ernaar kijken.
‫Dus laten we ermee beginnen.
‫En wat belangrijk is, zijn natuurlijk de waarden, toch?
‫Dus we willen de waarden weten.
‫En in dit geval zijn we geïnteresseerd in de kortste naam en misschien ook in de lengte hier, want dat is de
‫logica, toch?
‫Dus wat we zouden doen, is dat we dan naar de volgende stap gaan.
‫En we kunnen zien, oké, de lijst bestaat uit zeven waarden, dus dat is prima.
‫Dit lijkt dus te werken.
‫We hebben al onze vrienden daar.
‫Dus tot dat moment lijkt alles goed te gaan.
‫Dan gaan we naar de volgende stap.
‫Dus we hebben ons oog, dat is ons.
‫Teller en hij staat op nul.
‫Oké, dat is oké, en de laatste telling is op zeven, dus we kunnen naar de volgende stap gaan.
‫Nu hebben we hier een vergelijking.
‫Als lijst I lengte groter kortste lengte.
‫En daar zien we dat de kortste naam Frank is.
‫Dus daar zijn we mee begonnen.
‫Rechts.
‫Dus de lijst begint bij Frank.
‫Dus tenminste ik die nul is.
‫We zullen Frank hebben.
‫Dus dat is prima.
‫Laten we nu naar de volgende stap gaan, want het lijkt erop dat deze voorwaarde in de if-instructie niet waar was.
‫Oke.
‫Dan kunnen we naar de volgende iteratie of volgende stap gaan.
‫En het is weer aan het vergelijken, nu kunnen we zien dat de lijst nog steeds zeven mensen is en dat we een stringlengte hadden die
‫werd geretourneerd met drie en de andere was vijf.
‫Dus wat is hier aan de hand?
‫We kijken naar Joe en Joe zou de volgende moeten zijn die in de lijst staat omdat hij een kortere naam heeft dan
‫Frank.
‫En dat weten we omdat we het programma hebben geschreven.
‫Maar om de een of andere reden is deze naam natuurlijk nog steeds Frank.
‫Dus dan zouden we ons op dit punt kunnen realiseren, zijn ze in orde?
‫Dus waarschijnlijk hebben we hier een fout.
‫Dus we vergelijken gecreëerd met ook al zou het minder moeten zijn dan nu.
‫Rechts.
‫Of kleiner toen en nu, als we het breekpunt wegwerken en ons programma opnieuw draaien, dan zullen we zien, oké, we krijgen
‫de kortste namen, Joe en Frank en Maria.
‫Oke.
‫Dus dat is geweldig.
‫Dus nu is ons programma vrij van bugs.
‫Nou, en natuurlijk niet omdat we hier nog genoeg problemen hebben.
‫Dus een daarvan is dat we deze lijst hebben met Frank, Joe, Michelle enzovoort.
‫Oke.
‫Dus hebben we de lijst handmatig gemaakt, zodat we weten wat er in staat.
‫Maar laten we nu eens kijken.
‫Wat we proberen te doen is dat we proberen tien mensen uit te nodigen.
‫Maar onze dochter gaf ons net een lijst van zeven mensen.
‫Dus laten we deze code uitvoeren.
‫En.
‫We hebben een uitzondering, perfect, dus dat is het mooie van uitzonderingen, je weet dat er iets mis is met
‫je code en je kunt het repareren, want soms, zoals we net zagen, als je de bugs
‫niet ziet, zijn ze super moeilijk repareren.
‫En hier is het een argument dat buiten het bereik valt.
‫Index viel buiten bereik, moet niet-negatief zijn en kleiner zijn dan de omvang van de collectie.
‫U kunt hierover dus details bekijken.
‫Je kunt iets meer over deze uitzondering zien en het zal je alles vertellen wat je moet weten.
‫Rechts.
‫Veel informatie dus.
‫Meestal is het te veel.
‫Maar wat dit zegt, is dat we proberen een element in de lijst te laten bestaan dat buiten ons bereik ligt.
‫Oké, dus wat zou het kunnen zijn?
‫Het kan de lijst zijn waar we toegang toe proberen te krijgen, zodat we hierheen kunnen gaan.
‫En we kunnen zien dat we een uitzondering hebben, we hebben een lijst met nul.
‫Dus wat is er aan de hand, waarom is de lijst nul, omdat we zagen voordat de lijst zeven was, toch?
‫Dus waarom is de lijst ineens nul?
‫Omdat we eigenlijk nooit.
‫We hebben de lijst bekeken en de lijst verwijderd, toch?
‫We zullen.
‫Wat we deden, is dat we een element van de lijst hebben verwijderd, dus we hadden een lijst die verwijderd kon worden.
‫En dat is een beginnersfout, om zo te zeggen, want zoals ik je eerder vertelde, we passeren door verwijzing, we
‫gaan niet voorbij aan de waarde van de verschillen met volgen als we zeggen.
‫Dat we hier een lijst willen hebben en zodra deze methode wordt aangeroepen, wat hier het geval is, dus vrienden krijgen, wordt
‫hier genoemd en we geven een lijst door met de naam vrienden.
‫Dus we hebben deze lijst hier doorgegeven, wat niet betekent dat we de waarden doorgeven.
‫Wij niet.
‫We hebben de verwijzing naar die waarden eigenlijk doorgegeven, wat betekent dat al die waarden ergens in ons
‫geheugen staan.
‫Dus daar in het geheugen van onze computer.
‫Rechts.
‫En we verwijzen naar die waarden.
‫Dus we zeggen: oké, ik zou graag naar deze herinnering willen gaan waar je al je vrienden hebt.
‫Dus ik zou graag naar Frank gaan.
‫Ik zou graag naar Joe willen, enzovoort.
‫Dus zodra we bijvoorbeeld met deze lijst werken, verwijderen we een element van die lijst.
‫We maken geen kopie met de waarden en dan gaan we verder en verwijderen elementen uit de lijst.
‫Maar we zijn eigenlijk aan het wissen in deze herinnering.
‫Dus we schrappen Frank van de lijst.
‫We verwijderen Joe van de lijst.
‫Dat kun je dus vrij gemakkelijk zien als je dit voor elke lus gebruikt om je vrienden te bekijken.
‫Oké, dus ik ga het opnieuw gebruiken zodat we echt iets kunnen zien.
‫Dus ik ga door dit voor elke lus.
‫En zoals je kunt zien, wordt alleen Angelena weergegeven door alleen Angelena omdat Angelina de zevende in de lijst
‫is.
‫En ik heb zojuist zes mensen van de lijst verwijderd.
‫Laten we dat nog eens doen met vier personen.
‫Zodat je ziet dat Maria, Carlos en Angelina er nog zijn.
‫Dus jij.
‫Ik snap het.
‫Eigenlijk is het Michelle.
‫Oke.
‫Dus nog beter nu, we hebben een heel rare situatie waarin Michelle, Carlos en Angelina nog steeds op de
‫lijst staan.
‫OK, dus we verwijderen constant iemand van de lijst.
‫En dat zorgt voor een hoop problemen, want als iemand anders of als we deze
‫vriendenlijst ergens anders gebruiken, dan zal deze leeg zijn en beschadigd raken.
‫Het zal daar niet de beginwaarden hebben.
‫En dat is iets wat we niet moeten doen.
‫Dus wat we kunnen doen, is dat we hier een buffer kunnen creëren.
‫Dus ik ga gewoon een nieuwe verbale buffer maken, en dat zal een nieuwe lijst met strings zijn.
‫En het zal mijn lijst zijn, dus ik ga gewoon mijn lijst doorgeven die op dit punt aan mij is doorgegeven.
‫Oke.
‫En ik ga het opslaan in Buffer.
‫Het wordt dus een nieuwe lijst.
‫En wat we nu kunnen zien, is dat we nu natuurlijk uit de buffer moeten verwijderen.
‫Dus we zullen deze kopie van de lijst verwijderen.
‫We zullen niet verwijderen uit de lijst zelf.
‫Oke.
‫Dat is het belangrijke onderscheid dat we moeten maken.
‫We verwijderen nu uit de kopie.
‫Nu moeten we natuurlijk ook hier de buffer gebruiken om het feest front te krijgen, want anders zullen we nooit
‫iets vrijgeven van de lijst die altijd zeven personen zal zijn.
‫Dus zelfs in deze bufferlijst zullen het altijd zeven mensen zijn en dan zal het niet goed werken.
‫Oke.
‫Zodat we Frank, Jo, Michelle zijn, alles staat nog in de lijst.
‫OK, dus de voor elke lus werkt goed.
‫En ter vergelijking, wat we zouden kunnen doen, is dat we nog eens vier lussen kunnen maken en het met feestvrienden kunnen
‫bekijken om te zien of we nu nog maar zeven feestvrienden hebben, drie feestvrienden.
‫Dus je kunt zien dat het eigenlijk vrienden van de vierde partij zijn.
‫Dus ze zitten er allemaal in en Joe en Frank en Maria zitten er ook nog in.
‫Dus we hebben de vriendenlijst niet verwijderd.
‫We hebben de elementen uit de bufferlijst verwijderd.
‫En nu hebben we dit natuurlijk niet meer nodig.
‫Dus dit was alleen voor testdoeleinden en om te debuggen.
‫Maar nu hebben we een programma dat goed werkt.
‫Nu zou je kunnen zeggen, oké, we hebben geen bugs meer.
‫Nou, maar we hebben die ene bug die we eerder hadden nog steeds niet opgelost als we 10 jaar ingingen.
‫Wij zouden.
‫Krijg een bug of een fout, eigenlijk een argument dat buiten het bereik valt.
‫Dus wat kunnen we hier doen?
‫Omdat we toegang proberen te krijgen tot een element dat niet bestaat.
‫We proberen dus toegang te krijgen tot een lijstelement, ook al is onze lijst leeg.
‫Dus laten we tellen is nul.
‫En dat is iets dat we in de volgende video gaan oplossen, want nogmaals, dit is meer dan 10
‫minuten en ik wil geen superlange video's maken.
‫Dus ik ga je laten zien hoe je dit kunt oplossen in de volgende video, omdat we hier veel problemen mee
‫hebben.
‫Oke.
‫Laten we ze dus in de volgende video oplossen.
‫Zie je daar.