‫Welkom terug.
‫In deze video gaan we kijken naar romans en romans zijn een concept dat je in andere programmeertalen
‫ziet.
‫Swift gebruikt ze bijvoorbeeld vrij uitgebreid en daar worden ze optioneel genoemd.
‫Het zijn dus variabelen die een waarde kunnen hebben of die geen waarde hebben.
‫Er zijn dus twee opties, toch.
‫Dus iets heeft een waarde of heeft geen waarde, en meestal is dat nu of niet.
‫Dus laten we er een paar maken.
‫En trouwens, het is een gegevenstype, dus het gegevenstype kan leeg zijn of niet.
‫En meestal is dat zoiets als nullable, zoals je hier kunt zien, en nullable van het type INT 32, bijvoorbeeld.
‫Dus dat is over het algemeen hoe je schrijft hoe je het zou schrijven.
‫Dat zou een nullable zijn in 32.
‫Dus een waarde die waarden kan hebben van min twee miljard, ruwweg tot plus twee miljard.
‫Dus laten we doorgaan en ze maken.
‫Dus om een roman te maken, voeg je gewoon een vraagteken toe na dat gegevenstype.
‫Dus als je een geheel getal met nullwaarde wilt hebben, zoals ik zojuist heb geschreven, gebruik je gewoon een vraagteken
‫en ik noem dat nummer één en het wordt nul.
‫Laten we er nog een maken die ik nummer twee bel en dat tegen nul zei.
‫En zoals je kunt zien, krijgen we hier een foutmelding.
‫Het is dus klagen.
‫Er staat dat het woord nu niet naar INT kan worden geconverteerd omdat het geen of een niet-nullable waardetype is.
‫U kunt dus geen null toewijzen aan een geheel getal.
‫Dat is wat je zegt, zie hier.
‫Maar je kunt null toewijzen aan een nullable integer, wat we hebben gedaan in een regel negen.
‫Oke.
‫Dus laten we er nog een maken en dat zal nummer twee zijn en het zal één drie drie zeven duizend
‫driehonderd zevenendertig zijn.
‫Zo zou je doorgaan en een album maken.
‫Als je ziet dat het nul is of een waarde heeft.
‫Hetzelfde geldt voor dubbels.
‫Dubbel vraagteken dus.
‫Nummer drie is een nieuw dubbel en zo een vraagteken.
‫Dus dat is ook hoe je een nullable double kunt toewijzen.
‫Dus deze zal leeg zijn of hier is nummer vier drie komma één vier één vijf zeven.
‫Dus dat is PI en hetzelfde geldt voor booleans.
‫Dus het is een nullable bu en ik ga zeggen dat Movil zo'n
‫nieuw bool-vraagteken is.
‫Dus laten we het eens bekijken, laten we dat gewoon op het scherm weergeven en kijken wat we krijgen.
‫Dus s. W. , onze nullable-getallen zijn en we gaan nul één gebruiken.
‫Twee en drie, en dat wordt nummer één, nummer twee, drie en vier, en natuurlijk is het klagen omdat ik hier
‫mijn draad moet beëindigen.
‫Oke.
‫En laten we ook onze stier tentoonstellen.
‫Dus, s. W. , de nullable boolean-waarde is en de bull volle okeydokey.
‫Dus laten we die controle vijf eens proberen.
‫En onze nullable-nummers zijn, zoals je kunt zien, niets.
‫Het is dus niet eens een lege ruimte.
‫Het is gewoon niets.
‫Een drie drie zeven niets en drie een vier een vijf zeven.
‫En de nullable boolean-waarde is niets.
‫Dus zoals je kunt zien, kan het niets zijn en het is niet klagen.
‫Dus ook al zit er geen waarde in, het is nog steeds prima.
‫Het laat ons programma niet crashen of dat soort dingen.
‫Als je hetzelfde probeert te doen met een geheel getal, dat niet kneedbaar is.
‫Dus laten we een geheel getal maken met de naam nummer vijf en laten we het gewoon zo doen.
‫Dus we hebben het niet geïnitialiseerd.
‫En het is ook leeg, toch?
‫Er zit dus geen waarde in.
‫Als ik op die manier toegang zou proberen te krijgen tot die ene en ik ga hier nummer vijf gebruiken, laten we dat dan maar van ons afschudden.
‫Controle van vijf.
‫En zoals je kunt zien, hebben we een bouwfout.
‫Dus we kunnen dat niet eens stoppen omdat er staat dat er niet-toegewezen lokale variabele nummer vijf wordt gebruikt.
‫Dus dat is het hele punt daarover.
‫U maakt een variabele die leeg kan zijn of niet leeg kan zijn.
‫En dat is helemaal prima met het programma.
‫Het zal niet crashen.
‫En waarom zou je dat gebruiken, wat zou het idee achter Nullable zijn?
‫Stel je voor dat je een programma hebt dat met heel veel gegevens werkt, dus het heeft gebruikersgegevens en haalt het uit
‫de database.
‫En voor sommige waarden of voor sommige kolommen zijn er gewoon geen vermeldingen.
‫Dus laten we zeggen dat we gebruikersnamen hebben, we hebben persoonlijke naam of voornaam, achternaam, dan hebben we verjaardag,
‫enzovoort.
‫Al deze informatie kan worden opgeslagen in onze database.
‫Maar voor de meeste gebruikers hebben we alleen de gebruikersnaam.
‫We hebben hun voornaam, achternaam niet, we hebben niet het wachtwoord, hun e-mailadres, niets van dien
‫aard.
‫We hebben alleen de gebruikersnaam en we willen toch dat ons programma correct werkt.
‫Dus we zullen gewoon veelvouden gebruiken die prima zijn.
‫Als er geen waarde is, zullen ze ons programma Kresh niet maken.
‫Dus laten we daar een heel, heel algemeen voorbeeld van maken.
‫En ik ga hier een bool gebruiken, wat een goed geïnformeerde zal zijn en ik ga het is mail noemen en ik ga het op
‫nul zetten en hier ga ik gewoon controleren of het mail is.
‫Is het null of is het echt waar.
‫Dus als het waar is.
‫Dat klopt.
‫Iets als gebruiker is mail, anders is mail onwaar. Ik ga iets zeggen als gebruiker is vrouwelijk.
‫En dan tenslotte zeggen we gewoon iets als geen geslacht gekozen of misschien zoiets als geen geslacht gevonden of
‫iets dergelijks.
‫En dat zijn we.
‫Dus nu kun je doorgaan en dat soort benadering gebruiken.
‫Rechts.
‫En we gaan het in de volgende regel plaatsen.
‫En als we dat goed doen, wordt er natuurlijk geen geslacht gekozen, en in mijn geval stopt mijn
‫programma meteen nadat het dat zegt en dat heb ik nog steeds.
‫Ergens een fout en, nou ja, hoe kom ik daar achter?
‫Nou, het is deze hier.
‫Dus ik heb deze vier nog steeds in mijn tekst en het probeert er toegang toe te krijgen.
‫Maar er ontbreekt iets, dus daarom werkt het niet.
‫Oke.
‫Nu kunnen we proberen om vijf uur de controle te krijgen.
‫En we zijn onze nullable-nummers, dat is helemaal goed.
‫En dan hier, geen geslacht gekozen.
‫Oké, dat is allemaal goed en zo, maar wat als je een nullable wilt converteren naar een niet-nullable
‫type?
‫Nou, laten we dat maar eens proberen.
‫Laten we hier een nullable-bubbel maken.
‫Laten we het nummer vijf noemen, en het wordt dertien komma één en dan het dubbele, laten we het nummer zes noemen, want we
‫hebben hier dit nummer vijf, dat we nooit hebben gebruikt.
‫Maar ik laat het daar maar bij.
‫Het doet niemand pijn.
‫Dus nummer zeven wordt nu.
‫Dus hoe zet ik die om in een niet-nulbaar type?
‫En ik ga het getal acht maken, wat een nullable dubbel zal zijn.
‫Dus is een algemene dubbel, toch?
‫Het kan niet nu zijn of we kunnen er geen nul aan toekennen.
‫En nu kijken we of nummer zes gelijk is aan nu, dan is nummer acht nul komma nul en anders gaan we gewoon nee
‫zeggen.
‫Acht moet nummer vier zijn en zes zes.
‫Maar daar hebben we het probleem, want zoals je kunt zien, laat me daar nog aan toevoegen, ik kan het niet zomaar toewijzen.
‫Er staat dat het dubbele vraagteken niet impliciet kan worden omgezet in een expliciete conversie.
‫Dus ik mis een cast en dat is wat we moeten doen.
‫Dus we moeten het in een dubbel gieten, want we moeten weten of het niet nu is, dan is nummer zes intern een
‫dubbel.
‫Het bevat dus dubbele waarden.
‫Dus ik ga dat gewoon gebruiken en dat toewijzen aan nummer acht, zodat we gewoon door
‫kunnen gaan en de waarde van NUM acht weergeven is negen acht.
‫Dus laten we beginnen met controle vijf.
‫En zoals je kunt zien, is de waarde van nummer acht dertien komma één.
‫Dus de casting, de expliciete conversie werkte.
‫Er is echter een snellere manier om dat te doen, dus zoals je kunt zien, was het nogal wat moeite.
‫We moesten kijken of we de nu samenvoegende operator daarvoor kunnen gebruiken.
‫Dus we kunnen gewoon zeggen dat nummer acht gelijk is aan nummer zes.
‫Vraagteken, vraagteken, acht komma vijf drie bijvoorbeeld.
‫Dus als nummer zes leeg is, ga je gang en voeg acht komma vijf drie toe of voer ze in, en zo niet, doe
‫dan iets anders.
‫Wat ik ga doen, is dat ik nog een regel ga toevoegen en zoiets ga schrijven als de
‫waarde van NUM acht is.
‫En eigenlijk is dat gewoon kopiëren, want dat hebben we twee keer nodig en ik wil niet zo veel typen dat we dat wel
‫zijn.
‫Laten we dat nu opnieuw proberen en het verschil zien.
‫En zoals je kunt zien, is de waarde van geen enkele leeftijd dertien komma één, de waarde van nummer acht is dertien komma
‫één en de waarde van nummer acht is acht komma vijf drie.
‫Dus wat is hier gebeurd?
‫Wat werd hier genegeerd in regel 50?
‫Omdat het zei, nou, het was goed, ik heb er acht punt vijf drie aan toegewezen, maar zoals het lijkt, nummer
‫zes.
‫Had een waarde en het werd genomen zodat moeder zes een waarde had, gewoon een dertien komma één nam en aangezien NUM zeven geen waarde had, is geen
‫enkele gemaakt nu acht komma vijf drie, want als we er nu naar kijken, zeven is
‫niets.
‫We kennen er dus een andere waarde aan toe.
‫Dat heet dus.
‫Ik ga gewoon.
‫Kopieer het voor jou, de nu samengevoegde operator, dubbel vraagteken.
‫Dus als u wilt converteren van een aankondigbaar naar een niet-nulbaar type, dan kunt u de Tindell-coalescentie-operator
‫gebruiken.