DANIEL ARMENDARIZ: Halló allir, velkomið að IOS app þróun með skjót. Ég er Dan Armendariz. Ég er precepter af tölvunni vísindi hér í nám Verkfræði- og hagnýtra vísinda. Og snögg er í raun góður af mjög snyrtilegur tungumál. Og ég hef nokkrar áætlanir um dag. Svo á næstu klukkustund eða svo við erum að fara að líta á IOS app þróun sig nota Xcode og í raun að búa sumir einfaldar, mjög einföld forrit. Og að horfa á þann hátt sem þér í raun að taka þessar umsóknir, og byggja þá, og í raun setja þá á iOS tæki. Sumir af þeim hlutum sem við erum ekki að fara að horfa á mun fela hluti eins í raun að taka umsókn og setja það á the App Store. There er a einhver fjöldi af kennsluefni á netinu sem mun hjálpa þér með það þáttur í því. En einnig vegna þess að eins og hluti af CS50, þú færð að taka þátt í Apple þróun lið, app þróun lið CS50 er. Ef þú hefur ekki gert það enn og þú ert tengd við CS50, Ég mæli með að þú gera það vegna þess að er hvernig þú ert fær um að búa til sumir programs í Xcode, byggja þá, og í raun setja þá á sumum IOS tæki ef þú ert í raun og veru líkamlega iOS tæki. Ef þú ert ekki með líkamlega IOS tæki sem er meira en í lagi. Þú getur í raun þróast í IOS. Og Xcode hefur hermir sem leyfir þér að sjá umsóknina á aðgerð á tölvunni þinni. En það er tegund af a snyrtilegur hlutur að í raun að spila og hafa samskipti með umsókn þína á raunverulegum tæki. Þannig að það er a par af kröfum til í raun gera allt í þessari þróun. Einn af þeim er að þú þarft að hafa Mac. Það þarf að vera í gangi 10.9.4 eða nýrri í því skyni að gera þróun með skjótum. Þú getur notað fyrr útgáfu til að þróa með Objective C fyrir IOS og Mac. En ég mæli með, og mikið af dæmi að við munum sjá í dag, nota 10,10 Yosemite. Svo ef þú hefur ekki enn uppfært, það er góð afsökun til að gera það. Nú er Xcode 6.1 nýjustu útgáfu af samþætt þróun umhverfi að Apple er kveðið á um frjáls að þú getur sótt á App Store. Og ég mæli með að þú líka keyrt nýjustu útgáfu. Ef þú skyldir vera að keyra fyrr útgáfa, Xcode 5 og neðan bara einfaldlega styðja ekki snögg neinu tagi. Og beta útgáfur af sex, sem voru út yfir sumarið, styðja snögg, en það er verið gífurlegur fjöldi breytinga á tungumáli, nóg þannig að kóðinn sem þú ert að fara að horfa á og að þú gæti fundið á netinu munu ekki saman almennilega í þessum fyrri útgáfur af Xcode. Svo aftur, ef þú ert ekki enn hafa reikninginn, Ég mæli með að þú fara til developer.apple.com. Skráðu þig, búa til verktaki reikning og taka þátt í CS50 app þróun lið. Það mun veita þér tækifæri að safna saman forrit og setja þá á tækinu. OK, þannig að við skulum byrja. The mjög fyrstur hlutur við erum að fara að gera er að í raun búa til mjög einföld verkefni í Xcode sem mun leyfa þér að gera forrit. Svo ef þú ert ekki enn kominn Xcode opinn, fara á undan og opna hana og búa til nýtt verkefni. Sérstök skvetta skjár opnast og mun gefa þér sumir valkostir um hvaða það er sem þú vilt gera. Bara segja að þú viljir búa til nýtt verkefni, ný forrit. Þessi gluggi vilja skjóta upp, miðað við að þú ert að nota Xcode 6.1. Núna, og fyrir Lengd þessa ráðstefnu, við erum að fara að vera með einum skjá forrit, bara konar undirstöðu umsókn að fá fæturna blautur. Og þú getur grein út á eigin spýtur þaðan. Smelltu á Next á þessum tímapunkti. Nú hér er það a par af hlutur að þú might vilja til að slá inn. Nafnið vara er nafn á verkefninu. Í þessu tilfelli, ég er bara fara að kalla það Seminar1 vegna þess að það er fyrsta dæmi okkar. Nafn Organization, í þetta mál er bara nafnið mitt. Þú getur auðvitað breytt því eigin nafni eða til CS50. Organization heiti, ef þú skyldir hafa a website bara taka lén í snúa, com.yourname. og þá heiti vörunnar ætti að birtast sjálfkrafa eftir að sem búnt auðkenni. Vitanlega tungumál sem við erum að fara að nota í dag er snögg. Þú getur að sjálfsögðu notað Objective C fyrir það, en í dag munu vera snögg. Og við munum nú segja alhliða tæki, svo að það virkar á bæði iPad og iPhone. Og látum kjarna gögn hakað að halda verkefnið tiltölulega einfalt að sinni. Svo skulum fara á undan og smelltu á Next. Og það er að fara að spyrja mig þar sem ég vil til að vista það. Ég verð bara að vista það á skjáborðið mitt nú. Allt í lagi, svo nú er þetta það sem mun gerast þegar þú í raun opinn Xcode. Athugið að mjög fyrstur hlutur þú sérð er þetta upphrópunarmerki sem segir ekkert skilti sjálfsmynd fundust. Ég gerði þetta viljandi á tölvunni minni og ég er vona að ég ætla að vera fær um að í raun að laga það, vegna þess að ég vil að þú að sjá hvernig þetta vilja raunverulega vinna á eigin vél. Fara á undan og smelltu festa mál. Það mun spyrja þig hvort þú ert með núverandi epli reikninginn. Þetta er þar að ganga í CS50 app þróun lið er mikilvægt svo að þú ekki aðeins hafa app reikning, en þú ert líka getu til að undirrita apps og setja þá á iOS tækinu þínu. Þetta er not-- smella festa mál er ekki nauðsynlegt ef þú ert bara að fara að byggja upp og þróa staðbundið, að öllu leyti innan IOS hermir. En nú er ég að fara að þróa og setja þá á iPad minn, sem verður fær um að senda út eins vel. Svo ég vil í raun að bæta við þetta. Og það er að fara að spyrja mér fyrir Apple ID mitt. Svo það er að fara að vera svona. Og ég verð að ná í mína lykilorð, sem er hérna. Svo gefa mér bara eina sekúndu til að finna það, og afrita það og líma það hérna. Smelltu á Add. Það er að fara að spyrja mig sem lið sem ég vil taka þátt. Ég ætla að gera Verkfræði-. Smelltu þátt. Úpps, það er rangt einn. Við skulum gera þetta einn. Vonandi að maður vilja vinna. Það eitt er ekki enn vinna. Við erum að keyra út af góður sjálfur hér. OK, þetta ætti að virka. Nú loka því. Nú skulum gera skóla af verkfræði, smelltu valið. Og nú vonandi eftir Tveimur sekúndum þú can-- OK, Ég afturkalla og beiðni. Oh maður, þetta er að fara að ekki vinna. OK, ég ætla að reyna a ólíkur einn. Við skulum gera þetta einn hér. Lifandi demo eru galli mig. Við gætum þurft að snúa sér bara byggja alveg á staðnum, en það væri í lagi í þessu tilfelli. Svo hér, en þetta er í raun Vinna, hvað við erum að fara að gera er bara búa mjög einfalt Hello World forrit. Svo er þetta Xcode. Og ef þú hefur ekki séð það enn, það geta vera a lítill erfið í fyrstu. There er a einhver fjöldi af gluggarúða, það er mikið af doodads á ýmsum sviðum. En bara átta sig á að það er virkilega nokkrir helstu þættir að þessari þróun umhverfi. Lengst til vinstri eru allar skrár sem gilda til program eða tiltekið verkefni þitt. Við munum vera að smella í kring á sumum þeirra og við munum benda mest mikilvæg tímanum. Er lengst til hægri, við hafa sett af eiginleikum. Og allar þessar eiginleika, þar eru ýmsar gluggarúða fyrir eiginleika. Rammarnir mun breytast eftir í samhengi við helstu efni, sem gerist að vera í miðju. Nú miðja getur raunverulega sýna þú margs af hlutum, til dæmis númerið þitt sjálft. Eða þú gætir í raun have-- þegar þú smellir á klippiborðinu sem er, við the vegur, bara myndrænt framsetning notanda þínu tengi fyrir application-- þína þá eiginleika glugganum á mjög langt til hægri mun í raun breytast. Nú er það a par af öðrum hlutir sem mig langar að benda. Þú getur konar kanna í kring í umhverfinu á eigin spýtur. En eitt af því sem sem hefur verið mjög gagnlegt er á þennan hnapp hér, efst til hægri á glugganum. Það er á þennan hnapp sem lítur út eins og á langt fór það hefur málsgrein eftir tvo hringi og svoleiðis af tveimur örvum sem vísa í burtu frá hvor öðrum. Ef þú skiptir á milli staðall ritstjóri, sem er lengst til vinstri einn, einn sem er valin sjálfkrafa, og tveir hringir sem skarast hvert annað, það sem þú færð í raun eru tvöfaldur megin útsýni. Og þetta er í raun fara til að vera gagnlegt fyrir okkur þegar við þurfum að tengja atriði í HÍ á kóða. Og við munum tala meira um að í bara smá stund. En ljóst að ef þú færð jafnvel fleiri gluggarúða eins og þetta, þú getur einfalda skoða bara svolítið með því að smella aftur á einn ritstjóri. Svo langt svo góður. Svo í rauninni höfum við kóðann á vinstri, eiginleika til hægri, og hvað sem það er sem við erum að vinna hér í mjög miðju. Svo hér er ég hef smellt á helstu storyboard. Og storyboard, aftur, er leið í Xcode að þú getur í raun að búa þinn notandi tengi með bara draga og sleppa tækni. Og svo fyrir okkar mjög Fyrsta umsókn þetta er einmitt það sem við erum að fara að gera. Við erum að fara að fara niður á mjög miklu minni rétt hluta á skjánum, sem inniheldur a fjölbreytni af notandi þætti að þú getur þá smellið og dragið til að búa til notendaviðmót þína. Nú allar þessar þættir eru kallaðir skoðanir vegna þess að þeir veita einhvers konar skoðun. Það er mynd útsýni, fyrir dæmi, að í raun og veru að sýna mynd á notendaviðmóti. There er a borð útsýni til raun að sýna töflu. Svo framvegis og svo framvegis. There er a breiður fjölbreytni af skoðanir sem þú getur valið hér. Svo bara að nú erum við að fara að leita að miðanum. Þú getur bara að fletta í gegnum allar listum sem er þarna. En það er að leita bar á mjög neðst sem gerir það auðveldara að bera kennsl á sérstakar skoðanir sem þú í raun og veru vilja draga inn notandi tengi. Fann merki mitt. Ég ætla að draga það hér, beint á sýnishorn umsókn mína. Rétt þar í miðju lítur vel út. Og ég ætla að slá "Halló heimur!" Ýttu á Enter. Nú hef ég merki. Það lítur ekki eins og það er miðju alveg rétt. Svo ég get reynt til að miðja hana. Sem betur fer býður þetta leiðsögumenn til að gera hlutina miklu auðveldara. Ég ætla að reyna að þýða það. Vonandi mun það raunverulega vinna hér. Og ef það virkar ekki, á aðeins augnablik það mun í raun koma á iPad minn. Það er hérna. Það er það. OK, svo það er það. Við erum búin. Við höfum búið til okkar mjög Fyrsta umsókn. Nú augljóslega þetta gerir ekki neitt. Það er bara merki. Það er engin tenging á milli notandi tengi og kóðinn. Þannig að ef við vildum í raun til að búa til þessa tengingu, ef við vildum í raun að hafa einhvers konar samskipta milli þætti sem eru fyrir hendi á skjár og kóða sem gerir okkur kleift að stjórna þessir þættir, þá við þurfum í raun að líta á sjálft. Svo er þetta það sem er kallað ViewController.swift. Og fyrir, sérstaklega fyrir Fyrstu programs, þetta er að fara að leysa af megnið af kóða sem þú enter-- er að fara að vera í þessu skjali hér. There er a einhver fjöldi af efni það er hér svo langt, ekki satt? Það er innflutningur UI Kit bekknum, hunsa, [? Funk,?] allir þessir ýmislegt. Og það er ekki alveg ljóst hvað það er að allt þetta þýðir. Svo skulum við taka skref til baka í burtu frá Xcode fyrir a lítill hluti og líta á tungumálinu sjálfu, snögg. Svo með snögg, það var í hönnun og þróun hjá Apple fyrir um fjögur ára til skilningi mínum. Og það er a par af lögun um það sem er mjög snyrtilegur. Fyrst af öllu, er það saman tungumál, rétt eins og C. Svo þú ert fyrstur til að þýða það og keyra síðan það áður en þú getur raunverulega framkvæma kóðann sem leiðir. En það er, ólíkt C, gagnvirk hvetja sem þú getur í raun að keyra og gerð handahófskennt skipanir í. Og mjög mikið eins og JavaScript vélinni, sem þú gætir verið kunnugt nú, það í raun mun meta þá skipanir og veita yður framleiðsla. Og þeir hafa jafnvel tekið að fara á næsta stig og þeir eru búnir að skapa eitthvað kallast leiksvæði í Xcode sem leyfa þér að sjónrænt vinna með kóða. Og við munum í raun sjá nokkur dæmi um það í réttlátur a lítill hluti. Það er byggt á C. C liggur það, vegna þess að allar vistþýðendur að búa til kóða út af C og búa til mótmæla kóða frá því. En það hlutabréf í raun tiltölulega lítið setningafræði. Það mun líta nokkuð öðruvísi. Það verður að vera einhvers líkt. En það eru að fara að vera alveg nokkur mismunur miðað við, segja, JavaScript eða PHP. Og við munum benda þessar út í bara smá stund. Nú einn af stærstu hlutum um snögg það er gott er að, sérstaklega í samanburði C, það er ætlað að vera öruggur. Allt í henni er ætlað að vera mjög eindregið slegið í. Í raun er það nánast pirrandi í fyrstu, þegar þú fyrst byrja að vinna með skjót, hversu mikið það knýja tegundir alls staðar. Nokkuð sem er band þarf að halda áfram að vera band. Það er mjög erfitt að raða af umbreyta það eða þvinga það inn í einhverju öðru formi. Og aftur, munum við sýna dæmi um þetta. En að lokum grein fyrir því að þetta er ætlað til að vernda þig, og af þér ég meina númerið þitt, frá hrun í sumum hræðilegt hátt þegar þú hafir einhverskonar ósamstæðrar tegund. Og aftur, vinna með það. Vegna þess að það verður pirrandi í fyrstu eins og þú reynir að reikna út hvers vegna nákvæmlega þú ert að fá þetta óvenjulegt villa að takast á við gerðum. En það mun vera þess virði á endanum. Það skiptir takast á við sjálfvirka minni stjórnun, svo ekki lengur að gera þér þurfa að takast á við hlutina eins malloc og ókeypis og allir af þessum tegundum af hlutum. Og það er einnig ætlað fyrir Almennt efni. Svo á meðan við getum notað Xcode að búa IOS apps og Mac forrit, við getum líka bara að nota það sem forskriftarþarfir tungumál. Og svo við getum notað það eins konar af í stað þess að PHP eða stað af Python til í raun og veru fljótt flokka og ferli sumir gögn sem við höfum á tölvunni okkar. Það er fjölbreytt úrval af nútíma lögun, optionals, mutability, samheitalyfjafyrirtækið, lokunarbúnaður, og a einhver fjöldi af þessu efni sem þú mega eða mega ekki viðurkenna. Og það er bara svoleiðis óheppileg hluti af því tungumáli sem sumir af þessum konar framúrstefnulegt, nútíma þætti sem er að finna innan þættir eru svo djúpt samgróin að ég mun í raun að kenna þér CS50.5 svolítið. Við verðum að læra svolítið meira um tiltekin lögun í röð að raunverulega skilja hvað er að gerast á og svo að þú getur litið á kóða og ekki finnst alveg glatað. Og þú munt sjá hvað ég meina með að í aðeins eina mínútu. OK, svo let's-- nóg af þessu konar fræðilegum efni. Við skulum líta í raun á okkar Fyrsta snögg program. Það er ein lína af kóða. Line 14 hérna, það segir prenta L n halló CS50. Þannig að það er a par af hlutum sem er mjög mismunandi um þetta samanborið að hlutum sem þú gætir haft notað til að úr C, til dæmis. Einn af þeim er að það er engin intmain, það er engin meðal annars kafla, það er ekkert af þessu auka efni. The eru, eins og staðall I / O, eins og bókasöfnum sem raunverulega veita staðall lögun af tungumálinu, eru sjálfkrafa með sem hluti af venjulegu bókasafni Swift og sem eru sjálfkrafa flutt. Þú þarft ekki að gera að innflutningur handvirkt. Intmain er ekki til vegna þess að helstu innganga benda á kóða er í raun á að upphaf kóða. Svo allir kóða sem þú þarft reiknað frá byrjun verður í raun að framkvæma í upphafi. Svo þetta virkilega mjög einfaldar. Takið einnig, að það er engin semíkommu. Það er engin semikommum í þessu tungumáli. Þú setur yfirlýsingu á einstaka línu og svo næsta lína táknar annað yfirlýsingu. Ef þú vilt setja mulitiple yfirlýsingar á netinu, þá verður þú að aðskilja hana með semikommum. En að mestu leyti, fyrir góðum stíl, erum við aldrei að fara að sjá semikommum fyrir tilganginum aðskilja yfirlýsingar í Swift. Svo hvernig virkar þetta raunverulega vinna? Jæja mjög mikið eins og C vér í raun að safna saman þetta. Og svo við getum gert það með því að nota Swift c og þá 1.swift. Og síðan eftir nokkra mínútur þetta mun taka saman og þá get ég keyrt hlut einn. Og en það verður bara að segja "Hello CS50." Awesome, þannig að það við förum. Það er fyrsta Halló heimur program okkar. Við skulum fara á númer tvö. Nú í this-- þetta hefur breyst örlítið, því en venjulega þig do-- í raun alltaf þarf að saman skjót forritinu áður en þú í raun að keyra it-- einn af the mikill lögun að ég benti til áður var að Swift geta raunverulega vera notaður í einhverskonar af gervi-túlkandi ham, það er í raun eins og túlk. En hvað þetta mun gera er er í raun a skjótur umsókn að þú getur keyrt. Svo td ef þú skrifar bara snögg hér, hvað mun gerast er að þú munt fá a hvetja. Og þú getur slegið Swift þína númer, prenta halló, og keyra það. Og það mun í raun print-- vel, það var ekki prentað í þessu tilfelli vegna þess að það prentað að miðju út, sem er ekki sýnilegur hér. En það er í raun fær um að virka. Og svo í þessu tilfelli, ég er bara fara að nota þetta sem handrit. Og ég get í raun að keyra þennan kóða þar. Svo leið að ég keyrt í raun það mun vera örlítið öðruvísi, en þú munt sjá að á aðeins augnablik. Nú, í þessu tilfelli hvað við erum að fara að gera er að fyrst að skilgreina breytu. Svo er þetta hvernig við skilgreinum breytu í snögg, er við að nota láta leitarorð, fylgt með nafni á breytunni, og þá erum við að veita sumir Frumstilli gögn mögulega. Þannig að þetta mál sem við erum að skilgreina fasti nefndi, og við erum að fara að nota það í framleiðsla lína prenta okkar á mjög botn, hello nafn. Nú taka eftir því frekar en að nota% s, við getum þjappa nafn þetta breyta í / () og vera fær um að concatenate í innihald þetta band í þessum streng. Nú, string er ólíkt C Raunveruleg alvöru tegund í skjót. Og svo situr það við hlið ints og hlið tvöfaldar mjög auðveldlega og náttúrulega samanborið að sumir af hinum tungumál sem við höfum séð. Þannig að þetta myndi raunverulega virka bara eins og þú vildi búast við. Ég get keyrt 2.swift. Og við sjáum að nafn mitt er reyndar skeyta í, "Hello Dan." OK, ógnvekjandi. Færa um að númer þrjú. Nú það var svolítið af hvítum liggja að ég sagði að leiðin sem við lýsa breytur var að nota láta leitarorð. Eins oft og þú mögulega getur þú gert vilt nota láta, vegna þess hvað það gerir er það skilgreinir fasti. Og það segir snögg að það getur hagræða hraða umsókn þína því það veit að það breyta er ekki að fara að breytast. Svo meta vandlega þegar þú ert að fara að nota breytu fyrir tilgangi að breyta því. Og þegar þú ert að fara að búa til breytu bara að halda sumir gögn og það er ekki í raun að fara að breytast. Þannig að þetta hugtak af óum-, það er í raun ekki að fara að breyta, er mikilvægt eins langt niður sem skilgreina breytur. Svo hér höfum við skilgreint nafn, láta nafn, og í þessu tilfelli Það er stöðug, það er af gerðinni band, og það er jafn Dan. Svo en er í áður þekktri útgáfa, infers-- það og "það" Ég meina swift-- Swift infers tegund gagna að við höfum slegið í breytu. Í þessu tilfelli getum við verið skýr. Svo láta þá heiti þetta breyta er nafn, þá ristill. Og eftir ristli gerum við tilgreina tegund gagna. Svo er það ekki lengur nafn Int eða nafn string eða eitthvað svoleiðis. Heldur láta merki, við erum skilgreina hvort það er stöðug eða breyta, eftir nafn, fylgt eftir með þeirri gerð sem mögulega er. Þannig að í þessu tilfelli erum við að skilgreina þetta nafn er strengur. Við erum að segja er Dan. Og nú hef ég annað breytu, í þessu tilviki það er kallað merki. En eftir að það er forskeyti vámat leitarorð. The var leitarorða leið að þessi breyta getur að breyta nánar síðar í tími, einhvers staðar niður í númerinu getum við breytt í raun það og það mun ekki gefa okkur neina sérstaka villa. Við getum gert staðlaða concatenating rekstraraðila hér með auk tákn að raunverulega bæta okkar nafn í þessum streng. Og þá getum við prentað út eins og við sáum bara í smá stund síðan. Nú skulum segja að þú langar að búa til breytu en þú vilt ekki að frumstilla hana ennþá. Þú ert ekki enn vilja til að setja nein gögn innan þess. Jæja þú ert að segja snögg hvað tegund af gögnum er að fara að vera áður en þú getur í raun skilgreina það almennilega. Svo í þessu tilfelli, þegar við höfum skilgreint breytu sem heitir einkunn við verðum að vera skýr um gerð hennar, vegna þess að það getur ekki ætlað bara að leita á frumstillt gögnum sem þú gefur henni. Það mun gefa okkur villu ef þú bara gerð var einkunn, til dæmis, vegna þess að það hefur enga tegund því. Svo einkunn = 100. Þannig að 100 er heil tala, það passar mjög vel inn í það. Það mun halda áfram að virka. Við getum séð hvernig þá erum við getur concatenate þetta í. Nú þú gætir verið freistað, ef þú í raun vildi concatenate að einkunn í annað textaröð, í annað band, sem þú myndir bara nota þessi sömu concatenating rekstraraðila. Og það myndi venjulega vera satt. En Swift mun ekki leyfa þér að óbeint breytt gerð af gögnum. Þannig að í þessu tilfelli, þetta lína, 25, mun mistakast því einkunn er heiltala og ekki a band. Og svo er það misræmi setja af gerðum. Svo þú þarft að vera skýr þegar þú þarft að breyta þessum gögnum, þegar þú vilt að kúga þetta gögn inn í annarri gerð og segja, OK, ég vil taka þessi einkunn, sem er heiltala, og umbreyta það til a band. Svo ég tek höfuðborg s String allt af gerðir, þú munt taka eftir, eru eignfærð, Int, Double, String, svo á og svo framvegis. Öll þau eru eignfærð bara til að gera hlutina auðveldari. Og við munum segja nýta String fara inn í það bekk. Og það verður að búa a band út af því að tölu. Og þá getum við concatenate tveir mjög fallega. Einhverjar spurningar um þetta efni svo langt? Allt í lagi, við skulum plægja gegnum til númer fjögur. Nú skulum tala um suma fleiri háþróaður mannvirki, eins fylki og lykkjur. Og ólíkt C, fylki í snögg eru ekki fulltrúi ábendingum. Ábendingum í Swift, þó þær eru til, sem heitir eins ótraustur ábendingum eða sumir svipuð gerð svona, þeir eru ekki fyrir áhrifum að þér venjulega. Svo það verður mjög erfitt fyrir þig að vinna minni beint af tölvunni þinni. Svo fylki eru bara gögn tegund. Og þeir eru heitinu nota þessa tegund af nú staðall hornklofi merki þegar þú hefur séð áður. En þegar þú vilt í raun að skilgreina tegund breytu sem fylki af einhverju einkum gerð, þá setja þessi tegund í hornklofum. Svo það sem ég er að segja hér er að Ég er að stofna breytu sem heitir bekk int array. Og ég er að setja það jafn sumir forsniðin gögn, sem í þessu tilfelli er 100, 0, 90, 85, sem er bara safn af handahófi bekk hér. Nú í þessu tilfelli ég gat, muna, fjarlægja tegund, og það væri hægt að álykta það byggt á frumstilla gögnum. En ef ég fjarlægt þetta og Ég þurfti að setja það seinna, þá myndi ég þurfa að ganga úr skugga um að ég hef gerð þar. Allt í lagi, við skulum fara eftir. Þannig að við can-- fylki veita okkur margs aðferða í gegnum það punktur tákn á þig eru sennilega nú þekki. Svo grades.count, til dæmis, segir okkur nákvæmlega fjölda þætti sem eru finna innan þessu fylki. Ef ég vil bæta additional-- nú tekið eftir því að þetta er var og not-- þetta er breyta og ekki fast, sem þýðir að ég get breytt innihaldi af þessu fylki, get ég bætt hlutum við það. En ég get ekki bara segja bekk og síðan í hornklofum fjögur, af því sem mun vera út af mörk villa í þessu tilfelli. Ef ég vil reyndar breyting stærð þessa array, Ég verð að nota punktur bæta aðferð til bæta eitthvað á til enda þess. Ég get, hins vegar, breyting einstakra vísitölur. Þannig að ég gæti notað einkunnir og þá hornklofum núll til að vinna þessa fyrstu vísitölu og svo á, eins og þú myndir venjulega búast. Og ég get gert það sama á reyndar fá gögn frá það eins vel. Nú er það líka svoleiðis fínt aðferð um að gera þetta, einkunnum auk jafn og þá annað vísitölu, sem mun append-- eða ekki annað index-- en annar listi sem mun auka þessi listi að aftan á bekk. Og einkunna mun þá innihalda allt það. En það er tegund af auka hlutur að ég ætla bara að sýna þér til skemmtunar. Nú er það til hliðar. Og þetta er upphaf þar hlutirnir fara að breyta smá. Takið eftir hvernig þetta fyrir lykkju er frábrugðin fyrir lykkjur í C Nú mun ég huga að fyrir lykkjur í Swift getur að gera til að líta út eins og fyrir lykkjur í C, en það er mikið af fleiri gagnlegar býr sem í raun útrýma the þörf að hafa fyrir Var ég jafngildir 0 semíkommu ég er minna en nokkru lengd, svo framvegis og svo framvegis, ekki satt? Og þetta reisa er bara einn af þeim. Fyrir vísitölu, vísitölu er nýtt breytilegir í þessu tilfelli, í bili. Og það sem ég er að segja er að það er a bilinu 0 alla leið upp að þó ekki grades.count. Þannig að þetta punktur punktur minna en merki táknar a bil að byrja frá núlli alla leið upp að grades.count minus 1. Það er sérstakt rekstraraðili sem er til staðar, sem er punktur punktur punktur, sem myndi meina að ég vil á bilinu núll að einkunnum telja innifalið. En í þessu tilfelli, vegna þess að þessi fylki eru núll vísitölu, við að sjálfsögðu vil ekki að fara á Hámarksfjöldi bekk. Ég get summa einkunnina, eins og þú gætir búast við, og framleiðsla allt þetta efni. OK, flutti á. Nú skulum tala um aðgerðir. Í því skyni að skilgreina fall þú notar funk leitarorð. Og aftur, í Swift þú þarft að vera mjög varkár með gerðum. Þú veitir það viðföng með því að skilgreina, til dæmis, nafn breytu og þá í Colin, tegund gagna að þú ráð fyrir að breytu til að samþykkja. Svo í þessu tilfelli höfum við virka kallast prenta einkunn telja. Það tekur breytu sem heitir gradebook, eða öllu heldur breytu sem heitir gradebook. Og við erum að búast að gradebook að vera array af heiltölur. Ef að gradebook er tóm, við munum prenta eitt. Annars munum við prenta út fjölda af einkunnum að þetta hefur í raun. Nú ef við viljum aftur sumir gildi, þá leið að við að breyta þessari skilgreiningu er til raunverulega nota þetta ör leitarorð, eða til að nota þessa ör táknmynd. Svo hér erum við að fara að skilgreina fall kallast meðaltali. Við erum að fara að taka lista yfir númer. Og við erum að fara að fara aftur a tvöfaldur, sem mun vonandi vera meðaltal af þessu fylki. Og í því skyni að gera það, í því skyni að í raun reikna þetta meðaltal, munum við taka summu og við munum Auðvitað summa upp allar hlutum innan þessa array. Takið eftir að það er nýtt stíl fyrir lykkju hér. Við þurfum ekki að vera skýr um iterating yfir hvert einasta frumefni, en við getum í staðinn sagt fyrir bekk og gradebook, merking að fyrir hvert einasta atriði sem við höfum í þessu, kveða á um að atriði í þessu breytu sem heitir einkunn. Og ég vil gera eitthvað með það. Þannig að ég ætla að summa þetta allt gögnum og í raun aftur tvöfalda skiptingu. Nú taka aftur hér er það Hugmyndin um heiltölu deild í Swift. Ef þú vilt að tvöfalda skiptingu vegna þess að þú vilt brotum, þá verður þú að vera skýr, ekki bara um eina hlið, vegna þess að það er ekki að fara að leyfa þér til að þvinga gögn á hvorri hlið á þessu, þú þarft að raunverulega sjálfsögðu báðir aðilar í tvíliðaleik þannig að þú ert mjög skýr um að tryggja að þú ert að gera tvöfalda skiptingu. Við skulum fara. Svo ef ég vil í raun og veru að accept-- svo í þessu tiltekna dæmi, þetta er enn stjórn lína undirstaða umsókn. Og við erum farin að sjá nokkrar af takmarkanir á unga tungumál í að þó að við getum sjá rök með því að nota þetta process.arguments, það er enn ekki endilega hreinustu hlutur sem við höfum nokkru sinni séð. En í rauninni ég hvetja þig til að raða í líta á þessum kóða og reyna að reikna út hvað nákvæmlega er að gerast. Í raun það sem er að gerast er að við erum að taka lista yfir rök og voru coercing þeim í heiltölur, og þá erum við fara að nota það sem leið til að prenta út meðaltal allra einkunna okkar. Að flytja á. Nú er það annar tegund af data-- annars gögn tegund frekar en fylki kallast orðabækur, sem eru mjög svipað kjötkássa matskeið eða kjötkássa kort og svipaðar einnig Tengin fylki PHP er. Svo þeir hafa hugmynd lykla og gildi. Og þeir eru skilgreindir einnig með þetta hornklofi merki, en munurinn er að orðabækur inni á hornklofi, tvípunkti. Og ristill skilur gögn slá það er lykillinn og gildi. Svo í þessu tilfelli, ég ætla að búa til a orðabók til að samþykkja nokkrar einkunn. Og það er að fara að vera af gerðinni band: int, sem þýðir að ekki minna en the takkarnir eru að fara að vera strengir, og öll af þeim gildum hjá þeim takkarnir eru að fara að vera heiltölur. Hvað þýðir þetta er að ég get þá vísa á ákveðna gögn að ég vil nota þessa lykla frekar en að nota tölugildi vísitölur eins og ég hefði fyrir venjulega array. Nú skulum sjá, það er eitt mikilvægasta að ég vil líka að nefna um þetta tiltekna röð kóða. Og það er að það er annars konar gögn, eða öllu heldur er það þetta hugmynd af gögnum sem er finna innan Swift kallast optionals. Og hvað optionals þýðir að það viðurkennir þá staðreynd að stundum þú ert ekki að fara að fá gögn sem þú átt von á í raun. Og svo það sem ég meina með því is-- skulum taka a líta á þessa röð af kóða sem iterates yfir öll rök sem voru sett til þessa kóða og reynir að breyta þeim, tilraunir að skipta í ýmsum strengjum, vegna þess að það tekur mjög ákveðin tegund af röksemdafærslu. Og þá er það að fara að reyna að kúga strengir sem tákna tölur í heiltölur sem eru einkunna, sem ég get þá reikna. Svo í rauninni að ég ætla að nota þessa hættu fall sem er til staðar innan Snögg Standard bókasafn. Ég ætla að fara inn í það að band sem ég vil að skipta. Og þá á að nota þetta konar angurvær setningafræði, sem Ég veit ekki hvort við munum fá að, en kannski, við verður í raun að tilgreina nákvæm karakter sem við viljum að skipta á. Svo hvað þýðir þetta í raun líta út? Við skulum taka a líta á í raun að keyra þennan kóða. Svo til dæmis, við skulum segja að ég hef a quiz og ég fékk 50 á því. Og ég hef PSETs og Ég fékk hundrað á því. Og ég got-- það er annað quiz og ég fékk 40 á því. Ég lenti inn, og að lokum hvað mun gerast er að hvað það er að gera er að taka þessa þætti, skipta strengir á þessum tvípunkti, viðurkenna að það er tveir þættir í hverjum og einum, og það er í raun halda utan um hvert. Þannig að ég hef í orðabók minni quiz, sem gildi er táknuð með fjölda 50, Ég er með PSET sem hefur gildi 100, og quiz einn sem hefur gildið 40. Þá seinna í númerið I reyndar meðaltali allar þessar gildi og skrá alla takkana sem einkum orðabók. En þetta er mikilvægt þannig að þú getur taka hvað er að gerast, er að það sem við langar að gera er að taka þetta band og kljúfa það í þessum toga, sem við getum gert aftur með þessum hættu virka með þessa tegund af áhugavert setningafræði sem er til hér. Bara nú ráð fyrir að það er í lagi. Við munum líta meira á þetta í bara smá stund. En nú er það áhugavert þáttur sem við í raun vilja til að reyna að breyta þessu band í heila tölu. En á öðrum tungumálum hvað gæti gerst er að við myndum líklega reyna að gera það og annaðhvort fá aftur einhvers konar Sentinel gildi eins og neikvætt eða kannski null eða eitthvað svoleiðis. Eða kannski er þetta bara valdið villu. Og við yrðum að þá grípa þessi villa og þá reyna að gera eitthvað byggt á þeirri staðreynd að þessari breytingu að heiltala mistókst. Það er þar sem þessi hugmynd af optionals kemur. Þú getur í raun að búa til gögn tegund sem er int spurningarmerki, til dæmis. Það þýðir að þetta heiltölu er í raun valfrjáls. Og hvað mun gerast er að það getur innihalda heila tölu, eða það getur ekki. Það getur í raun verið þetta annað hugmynd, alveg kallað nill. Þar sem að þýðir að það er ekkert gildi alls á þessu. Það er ekki einu sinni núll, það er bara ekkert gildi. Það er engin gildi fulltrúa. Og það er það sem þessi lína 71 er að gera. Er að það er að segja að ég langar að prófa að setja inn gildi, breytu sem heitir einkunn, jafnt sem umbreyting á þessum streng er sett inn í Int. Þannig að ég hef tekið þessa band, þetta Fyrstu hluti, eða öllu heldur annað hluti, því þetta er núll verðtryggður þetta band sem ég hef skipt. Og ég vil að umbreyta að til þess að heiltala. En það má ekki alltaf að halda áfram venjulega, vegna þess að ímynda sér hvað myndi gerast ef, frekar en tegund a tala, ég pikka auðvitað eins asdf. Það er að fara að mistakast. Það er í raun ekki að fara að vera fær um að umbreyta það til heiltala eins og ég myndi búast við. Svo frekar en að sparka burt einhvers konar villu, við höfum þetta hugmynd um valfrjáls. Og það þýðir að nota þetta spurningarmerki sem ég get sagt, OK, það er mögulegt að ég get tekið þetta breytir það í int, og setja það inn í breytu, sem mun einnig vera int. Ef svo er, þá þýðir að þetta var vel og þetta fyrsta skammti af blokk getur haldið áfram. Annars tókst það. Það er ekkert gildi í grade-- eða heldur er það ekkert gildi í núverandi, og ég hef í raun að reyna að höndla þessa villu ástand. Þú ert að fara að sjá þetta spurningarmerki allan tímann í Swift og í dæmi kóða fyrir Swift. Og í raun nill rekstraraðila sem svona af spurningarmerki, sem optionals hluti, er að fara að vera sennilega einn af erfiðari hluti til að raða í sett höfuðið í kring eins og þú vinna í raun með það. Það gæti skynsamleg núna. Og í raun, þegar ég var skrifa dæmi um kóða fyrir þetta, vissulega ég skilið hvað var í gangi, en samt lent mig með óvart í hvert svo oft þegar ég myndi komast að því að sum gögn voru reyndar a núll útgáfa, valfrjáls útgáfa þeirra gagna sem ég átti von á. Svo bara átta sig á að ef þú hafa valfrjálst útgáfa þú þarft að taka upp að gögn frá þessum kassa. Svo er það tegund af eins I-- ímynda sér ef þú hafa kassa og það inniheldur eitthvað. Og hvað þú þarft að gera er að spyrja, er það mögulegt að þessi kassi raun inniheldur gögn sem ég er að leita að? Ef svo er, þá draga að gögn út og setja það inn í þessa breytu núverandi. Ef ekki, þá er ég bara að lítilsvirðingu innihald þessa kassa að öllu leyti vegna þess að það bókstaflega inniheldur ekkert. Einhverjar spurningar um þetta? OK, við skulum fara í burtu frá þessu konar stjórn lína byggist hlutur og byrja að horfa á sumir af the tækni að Xcode veitir okkur í formi leiksvæðum. Þannig að það er a einhver fjöldi af hæfileiki hér með Swift. Og ef þú opnar Xcode og það spyr þig hvað þú vilt gera, þú geta opinn upp á leiksvæði og bara leika í kring með fullt af mismunandi mannvirkja og þætti tungumálsins áður en þú byrjar jafnvel að snerta IOS SDK eða Mac SDK. Þannig að þetta mál, við skulum segja að ég have-- Ég er tiltölulega háttuð dæmi hér, en bera með mér eins og við raða af vinna með þessu dæmi. Við skulum segja að við verðum að gera a einhver fjöldi af forsprökkum með föstu gildi, eins og við vitum að við erum að fara að þurfa að gera a einhver fjöldi af fermetra völd, til dæmis. Þannig að við erum að fara að taka nokkur gildi x, við erum að fara að veldi það, við erum að fara að taka nokkur gildi y og við erum að fara að veldi það. Svo framvegis og svo framvegis. Nú við gætum í raun bara að búa til máttur af 2 virka fyrir þetta, ekki satt? Þannig að við myndum búa til kraft 2 virka. Við munum taka a tvöfaldur. Við munum output-- eða við munum skila tvöfalda tegund. Við munum taka þessa niðurstöðu og þá fyrir tvisvar það sem við raunverulega taka niðurstöður sem var frumstilla til gildið einn, og margfalda það með x. Svo í raun höfum við x sinnum x hér. Og svo þá get ég þá, og við gætum búast, að taka þetta, hlaupa vald af 2, veita henni sum gögn, eins og ég 2.0. Og við fáum að sjá niðurstöður hér 4.0. Hlaupa mátt 2 á 3.2 og vér fá að sjá niðurstöðu okkar, 10,24. Svo langt svo góður, ekki satt? Nú erum við að hugsa vel, OK. Nú þarf ég reyndar að gera a einhver fjöldi af völd 3. Svo ég afrita líma allt þetta kóða, breyta nafni fallsins frá máttur af 2 til valda af 3, og allt verður það sama nema fyrir þetta gildi hér, þetta svið, 1 ... 2. Svo frekar en að endurtaka Þessi lykkja tvisvar, Ég vil endurtaka þetta lykkju þrisvar sinnum. Svo ég breyta bara þessi gildi frá 1 til 3-- eða frekar 2-3. Svo aftur, sama kóða, það er eina breytingin. Nú þetta virkar líka. Kraftur 3 veitt í sumum verðmæti 2. Við fáum 8. Svo 2 cubed. 3,2 cubed er 32,768. Og svo langt svo góður, ekki satt? En vonandi er þetta aðeins hluti af rauðum fána fyrir þig í að við höfum nú sumir endurtekning af kóða nema fyrir suma mjög minniháttar breyta frá einu til annars. Svo er einhver leið að við gætum vera fær til að einfalda þetta vandamál, þar sem við getum í raun, á hlaupa tíma, reikna út sumir, veita okkur einhverja aðgerð sem hefur einmitt kraftur sem við viljum. Og það er þessi hugmynd um lokanir, sem er virkilega, virkilega mikilvægt í samhengi við Swift, og í mörgum öðrum tungumálum eins og heilbrigður. En sennilega þú munt sjá það er notað meira svo í Swift vegna þess að það er fellt í tungumálinu en þú verður í öðrum einnig nútíma tungumálum. Svo hugmyndinni um lokun er þetta, er að við getur haft fall sem er ætlað að vera almenn aðgerð, almenn máttur virkni. Og þessi aðgerð er að fara að taka þetta veldisvísirinn sem við í raun vilt búa til. Svo til dæmis, the mjög fyrstur dæmi, vildi við kraft 2. Þannig að við myndi veita styrk af og þá í sviga 2. Og nú taka það þetta í raun skilar. Þetta tekur inntak af visi kallað Y sem er heil tala, og það skilar þetta brjálaður útlit hlutur í parentheses-- sviga tvöfaldur og þá arrow tvöfalt. Hvað þýðir þetta er að ég er fara að skila aðgerð. Ég ætla ekki að koma aftur annars konar gögn, ég er í raun aftur aðgerð sem hefur þessa breytu, sem tekur tvöfalt sem inntak og framleiðsla tvöfalt sem skilagildi. Og þar af leiðandi, því nú hef ég kallað máttur, sem liggur í sumum gildi fyrir y, og ég er að búa þetta annað function-- tilkynningu að það er Önnur starfsemi sem er að myndast inni this-- hvað ég er að gera er ég þá að breyta að gildi, að einn gildi sem ég hafði breytt 2-3, að ég nú y. Og þetta er viðvarandi. Svo í hvert sinn sem ég kalla vald af, í raun hvað gerist er að ég fá aftur aðgerð. Takið eftir að hér er ég hef skilgreint ný breytu sem heitir ferningur. Ég hef sett það jafn krafti, veitt þetta gildið 2 í krafti. Og hvað þetta aftur er að virka. Svo veldi, breytu veldi, er nú á typefunction sem hefur this-- Úps, fletta upp lítið bit-- sem hefur þessa undirskrift, taka a tvöfaldur og framleiðsla tvöfalt. Svo nú það sem ég hef gert er ég hef í raun skapað virka kallast ferning sem samþykkir hvaða gildi og mun veldi það. Við sjáum hvað gerist hérna. Square 3 til dæmis, þýðir að ég ætla að fara að taka gildið 3 og veldi það. Svo hvernig nákvæmlega virkar þetta? Þegar ég fara kraft 2-- þegar ég fara 2 í þessum krafti virka, þessi breyta Y er byggð með það gildi 2. Og það er eins konar haldin í minni. Það er tegund af eins og haldið í ástand einhvers staðar í tölvunni, við í raun ekki sama hvernig eða þar sem á þessum tímapunkti. En ég aftur á þessa aðgerð kallað exponentiate. Og aftur, það skiptir ekki máli hvað þessi aðgerð er kölluð, getum við virkilega kalla það neitt, að samþykkir að tvöfalda og skilar tvöfalt, en notar þessa gildið y inni af því. Svo jafnvel þó að það er þessi aðgerð, þetta exponentiater fall sem er verið skilað aftur til mín breyta sem ég kallaði veldi, það hefur að geyma í henni þessi hugmynd um hvað Y var. Og það man það. Svo í hvert sinn sem ég kalla að virka sem heitir nú veldi, notar það það. En þetta þýðir líka að ég get búa til annan breytu með annað vald. Svo ég er að búa til teningur breytu, til dæmi, að veita henni kraft 3. Nú teningur vilja raunverulega taka sumir gildi og teningur sem og skila. Þannig að við getum séð að ég fengið gildi 8 af því. En það gildi Y hefur ekki breytt því þeir eru haldinn í konar breytur. Þau eru eins konar haldin í sjálfstæðir rými í minni. Svo teningur mun alltaf hafa x að krafti 3. Og veldi mun alltaf hafa x að krafti 2, sem þýðir að veldi verður alltaf ferningur tölur, eins og ég von á. Og teningur mun alltaf cubed tölur, eins og ég búast við. Þetta þýðir einnig að stundum getur fá einhverskonar angurvær útlit setningafræði þar sem þú hefur mátt á mjög neðst á skjánum hér, mátt 5. Og þú fara inn í kjölfarið. Þú kalla þessi aðgerð sem er verið skilað með númer 4. Og svo hvað í raun þetta er 4 til fimmta vald, getum við séð niðurstöður þar. Með mér svo langt? Svo þessi hugmynd er kallað lokun, vegna þess hvað við erum í rauninni að gera er að við erum að encapsulating sumir gögn into-- konar af umlykja þessi gögn í aðgerð og við erum vera fær um að endurnýta þessa aðgerð. Nú þetta setningafræði getur þó í raun að einfalda mikið magn. Og það er fullt af möguleika í Swift fyrir þennan einföldun. Og það er það tegund af síðari sjálfur í raun að líta á. Svo í 7b td við taka þetta nákvæmlega sama kóða. En nú frekar en reyndar skilgreina fall inni þessa krafti virka og gefa það a nafn, og síðan aftur nafn þeirrar starfsemi sem þá er notað sem hluti af þessi lokun, í stað erum við bara að fara að einfalda það. Við þurfum ekki þessa aðgerð til að vera heitir. Þannig að þetta er hugtakið sem nafnlaus virka þar sem við getum þá taka sem inntak, í sviga hér, breytan x sem er af tegund manna. Við erum að fara að skila tegund manna. Og þá leitarorðið, n, er upphaf þessa aðgerð. Svo eftir því að allt þetta er innan hrokkið sviga og við erum að skilgreina nafnlaus virka hér. Bara einfaldari leið skilgreina nákvæmlega það sama. OK? En bíddu, Swift gerir í raun okkur að ganga lengra og einfalda enn meira, því í raun að við gerum ekki sama að þessi stilling er heitir neina sérstaka hlutur. Það geta í raun að kalla neitt og við getum samt notað það fyrst breytu. Svo í raun er þetta sérstakt tegund gagna í nafnlaus virka, það er þetta sérstaka nafn breytur í nafnlaus virka að byrja með dollara merki og tákna breytu tölur, núll verðtryggð, fyrir þessa aðgerð. Þannig að það er a par af hlutur að fara á. Hér ætla ég að koma aftur, og þá hrokkið Brace fulltrúi aðgerð, ekki satt? Takið eftir að ég hafa ekki skilgreint sem breytu tegundir eða aftur gerð. Það geta í raun að álykta vegna þess að undirskrift í þessu upphaflega virka. Þannig að við getum útrýma að í þeim efnum. En líka að ég get notað dollaramerki núll til tákna þessa fyrstu breytu sem er lentu í þessu nafnlaus virka. Svo einfalda það enn meira. OK? Svo langt, svo góður? Nú er það þetta type-- gera þér muna þetta skilti dollara núll sem við sáum í þessum hrokkið borsveif að við sáum bara smá á meðan síðan í þessu Swift sex dæmi? Það var hérna. Takið eftir það er einmitt það sem við erum að horfa á, er að við höfum staðist í þessari hættu virka nafnlaus aðgerð sem athugar Fyrsta breytan til að sjá hvort það er jafn ristill tákn. Og það er einmitt það sem er gerast, er að allir við erum doing-- aftur leitarorð er gefið í skyn í þessu case-- við erum aftur þetta gildi þar sem við erum að bera saman Fyrsta breytan gegn þessi karakter ristill. Og svo þessi tegund af demystifies þetta. Og þú ert að fara að sjá þessa reisa a einhver fjöldi í Swift setningafræði, svo gera að halda að í huga þegar þú ert taka a líta á þetta. Nú getum við fengið burt teinn svolítið og fara virkilega fínt að sýningum jafnvel meira af krafti Swift. Þú gætir jafnvel sjá nokkrar af þessum á númerum sýnishorn. Svo er það hvers vegna ég er að fara að sýna þér þetta. Í grundvallaratriðum það sem við getum gert er að fyrst af öllu, það var eins konar Óþarfur fyrir mig að framkvæma öll þessi krafti kóða því ef þú flytja Darwin bókasafn, það felur í raun aðgerð heitir Pow sem gerir þetta fyrir þig. Svo við getum einfalda það enn meira og hafa vald upp fallið nú bara vera yndislegt einn Ferja þar sem við bara aftur þetta nafnlaus aðgerð sem tekur dollaramerki 0 þar sem hún stöð og y sem veldisvísi hennar. En við getum fengið í raun, mjög fínt þegar við átta sig á að Swift hefur mikið vald undir hetta. A einhver fjöldi af rekstraraðila sem við höfum verið að fást við, auk merki og skiptingu tákn og allt þetta sem þú venjulega starfa með með gagnatög í forritunarmáli, eru í raun teygjanlegur í Swift. Svo hvað það þýðir í að við getur skilgreint eigin rekstraraðila okkar. Svo nú er ég þreyttur á að slá í öllu þessu Pow og þá svigum og þá stöð. Ég vil ekki að gera það. Ég vil í raun til að hafa rekstraraðili sem leyfir mér að gera það. Svo ég get sagt Swift sem ég vil að búa til rekstraraðila, stjörnu star-- eftir því hvernig ég get ekki notað karat vegna þess að karat er rekstraraðili sem gerir eitthvað annað algjörlega. Svo ég vil ekki að raða af rekast með það. Og svo það sem þú sérð í ýmsum tungumálum, þar á meðal Python, er eins stjörnu stjörnu rekstraraðila að tákna veldisvisisins. Svo er það eina ástæðan hvers vegna ég hef gert það. Og það er að fara að vera infix tegund rekstraraðila. Og ég verð að veita að það einhverjar upplýsingar um forgang þessa rekstraraðila svo það vinstri tengin. Það er eins og tiltölulega hár forgang samanborið að samantekt eða margföldun. Það er hærra forgang en allir þeir. Svo framvegis og svo framvegis. Og þá er ég skilgreina virka sem raunverulega ræður hvað þessi flugrekandi gerir. Svo miðað við að ég hef vinstri hönd hlið og hægri hönd hlið, sem væri kannski betri breytuheiti fyrir þetta. Vinstri hlið og hægri hönd hlið. Ég get þá taka þetta vald af vinstri hlið til hægri hönd og aftur þá gildi. Svo nú er það frábær sætur. Allt sem við þurfum að gera er 2 star stjarna 3 og það er 2 til þar sem þriðja aflið, og við fáum útkomuna 8. 2 star stjarna 10 er 2 til 10. máttur, fáum við 1024. Svo nú máttur okkar virka, sem aftur er mismunandi, vegna þess að allt hugmynd á bak við þetta var að við höfum eitt fall sem tekur alltaf nokkur gildi og margfaldar it-- eða frekar tekur Eksponenten til sama krafti. Svo nú er það jafnvel einfaldara. Svo nú er það bara dollara undirrita 0 stjörnu stjörnu y. Við gerum ekki einu sinni að nota Pow lengur. OK, sem er glatað? Erum við að gera OK? Einhverjar spurningar um þetta efni? Já? Áhorfendur: Þegar you-- [inaudible] sem fönk máttur y tvöfalt. Svo þegar þú ert að skila hlutverki. DANIEL ARMENDARIZ: Funk máttur y tvöfalt. Ó já, ég veit ekki hvað y tölur eru. Afsakið að. Áhorfendur: Hvers vegna ert þú aftur fall [inaudible] girðing. Er ekki dollara núll stjörnu stjörnu Y [inaudible] komast að því að fjarskiptafyrirtæki með að aftur tvöfaldur [inaudible] tvöfalt? DANIEL ARMENDARIZ: Svo skulum mig að svara spurningunni þinni hvernig ég skil það og þú getur sagt mér ef ég skildi ekki spurninguna þína. Þannig að þetta reisa, sem hrokkið Brace dollaramerki núll stjörnu stjörnu Y, er fall. Og það tekur breytu sem er fulltrúi þessa dollaramerki núll. Afrakstur leitarorð er gefið í skyn í þessu mjög stutt, nafnlaus virka setningafræði. Sem þýðir að í raun hvað þetta er að segja er að ég er að skilgreina a function-- og þá ég bara kalla það something-- þar sem ég hef fengið gildið y. Ég hef y, sem er tvöfalt. Og ég er aftur a tvöfaldur. Og ég hef í þeim endurfundum y-- miður, Ég ætti ekki að hafa kallað þetta y-- x. Ó kæri, ó kæri, ó kæri. X-- nope-- stjörnu stjörnu y. Svo er þetta bara einfölduð útgáfa af þessu. Og svo ástæðan að ég hef dollara merki núll er að nota þessa girðing þýðir að ég hef ekki lengur að slá Pow, eða ekki lengur að gera Ég verð að gera eitthvað eins og 3 stjörnu stjörnu 2. Ég get bara einn virka kallast veldi sem mun alltaf taka eitthvert gildi sem inntak og í raun aftur veldi af því. Svo allt tilgangur lokun er bara svona að þjappa því að ég vil alltaf að nota y hvenær Ég kalla að virka eins og krafti þegar þú tekur þetta eksponent. Svo aftur þá, a fall sem tekur tvöfaldur, sem er undirstaða, og skila niðurstöðu þeirrar veldisvísi er lykillinn hér. Og það er mikil sóma. Það var bara hluti af blómstra. Þetta er ekki eitthvað öðruvísi í samanburði við fyrri dæmum, en það var bara hluti af a blómstra við getum í raun búa til rekstraraðila í Swift og í raun gera efni með það, sem er góður af a kaldur hlutur. Sagði ég að svara spurningunni þinni? Sweet. Allt annað áður en við halda áfram? OK. Nú þessa tegund af bidur Spurningin er that-- vel OK, nú höfum við getu til aðgerðir til að koma aftur. Getum við fara líka virka eins gögn eða eins og breytum öðrum aðgerðum? Og í raun við getum. Svo skulum segja að við höfum allar sama kóða. Við höfum torginu breytu sem mun veldi þennan kóða. Og við höfum teningur breytu sem mun teningur einhverjum gögnum. Og við viljum í raun að sækja um til a breiður svið af tölum. Svo hvað við gætum freistast til að gera, auðvitað, sem er vissulega gild, er að iterate yfir þennan lista af tölum og beita aðgerðir mínar veldi og teningur og fá tvo nýja lista úrslit sem eru á þessu upprunalega lista veldi og cubed, hver um sig. Fullkomlega ásættanlegt. En hvað er það sem við sjáum hér er að við höfum, aftur, fjölföldun kóða. Og það er kannski tækifæri fyrir okkur að einfalda þetta svolítið. Hvað ef það væri leið fyrir okkur að reyndar alltaf kunnugt um einhverja lista og bara fara að þessu töfrandi virka breytu sem táknar fall að við viljum sækja við hvert einasta atriði í þessum lista. Þetta kemur upp hugmynd um hvað eru kallaðir æðra virka. Og það er fyrst og fremst hvað þetta er, er að við getum búið til aðgerð. Og í þessu tilfelli það er kallað Mapper, bara til að gefa það a nafn, bara kortlagning á hverjum liðurinn í lista. Þar sem ég taka lista og ég tek aðgerð. Og að virka, að sjálfsögðu, hefur ákveðið undirskrift. Það tekur sem viðfang tvöföld og það mun framleiðsla er tvöfaldur. Og allt vegna þessi aðgerð er að fara að vera nýr listi sem er af tegund manna. OK? Og það sem ég ætla að gera er að beita þessari fallið f að hver þáttur í listanum mínum. Og reply-- og frekar aftur þetta nýja listi vegna, sem er mjög flott. Nú get ég framhjá virka kring. Og þessi hugmynd um æðra aðgerðir er mjög mikilvægt. Og þetta Mapper er í raun bara framkvæmd fátæka mannsins falls sem er byggð í Swift kallast kort. Og það er einmitt þetta, jafnvel svolítið betur. Þetta er bara svona almenn, einfölduð útgáfa sem gerir okkur kleift að sjá hugtak sem gildir hér. Nú líta á þann hátt sem ég getur beitt veldi mitt og teningur virka mínar þessum lista af tölum. Ég keyrt mapper mína. Ég veita henni lista minn númer. Ég veita að henni er að fall sem er að gerast að gilda um hvert þessara vísitalna. Og það er að fara að vera framleiðsla í kjölfarið. Og ég mun fá að sjá að ég hef veldi og cubed tölur mínar í kjölfarið. Og auðvitað Mapper mun taka hvers konar nafnlaus virka. Við getum jafnvel séð að ég hef búið ný nafnlaus aðgerð sem bara tekur nokkur breytu og skiptir það um 2. Og við getum séð að ég hef í raun, skipt listanum mínum um 2 í staðinn. Cool? Svo langt, svo góður? Allt í lagi, nú skulum koma aftur á þessa hugmynd. Við skulum framkvæma þetta aftur í tengslum við gradebook. Og ef ég geri það, getum við séð að ég get gilda fjölbreytt úrval af þessum options-- eða a breiður fjölbreytni af þessum hærri röð aðgerðir að í raun einfalda getu mína til að gera a Ýmsar hluti á lista yfir númer. Svo til dæmis, ef ég taka lista af tölum, einn af hærri röð aðgerðir sem er til staðar er heitir draga. Hvað draga gerir frekar en kortinu, minnkar mun taka tvo þætti á listanum, mun taka sumir virka sem saman tvö þætti lista, og það verður þá konar output-- að framleiðsla að virka mun vera annar þáttur sem þú bera saman þá til annarra. Svo þú gætir notað þetta til í raun og veru Summa talnanna í listanum þínum. Til dæmis, ef þú hefðir listi yfir 1, 2, 3, 4, 5, þú taka fyrstu þætti, 1 og 2. Þú getur sótt um að það viðbót fall sem tekur þá tvo þætti og spits út einn af þeim þáttum, sem myndi vera gildið 3. Þá erum við að taka þessi gildið 3 með næsta þáttur í listanum, summa þeirra tveggja, og þá halda áfram niður listann. Við erum að draga úr því lista til eitt gildi. Og það bara svo gerist að plúsmerkið er rekstraraðili, rétt eins og við sáum bara. Þessi stjórnandi er í raun fall sem hefur einmitt þennan lista sem við myndi vilja, frekar þessar eignir að við myndum vilja. Svo ég hvet þig til að taka a líta á þetta. Ég vil að raða á ferðinni á frá sumir af þessum kóða svo að við getum í raun líta á sumir raunveruleg, alvöru, satt Swift í Xcode, í iOS þróun. En taka a líta á þetta og sjá hvort þú getur flokka í gegnum hvað er að gerast með nokkrum af þessum hærri röð aðgerðir þ.mt sía, draga, og þú munt jafnvel sjá einhvers staðar hér kort eins og heilbrigður. Það er hérna. Þar sem hún mun taka röð af einkunnum og það verður í raun Kort þeim með rofa reisa, sem þú gætir kannast úr C, en í raun er það miklu meira öflugri en skipta reisa að við höfum í C Og við munum sækja að til hver þáttur á listanum og í raun veita bréf einkunn hvers af þeim einkunnum nota öll þessi hugtök að við höfum bara talað um áður. Nú skulum vikið fyrir aðeins mínútu og tala um structs. Og svo structs eru bíða í C sem við gátu til að skilgreina nýja tegund af gögnum. Structs eru innan Swift. Og svo gera a einhver fjöldi af öðrum býr kallast enums og flokkum, sem raunverulega taka þessa hugmynd til a allt annað stig. Og í rauninni er það bara leið að skilgreina nýja tegund af gögnum. Svo ef þú get-- ef þú kemur yfir bekknum eða structs eða enums, fæ ekki rugla með það. Það er bara þannig að skilgreina nokkur ný einkum tegund af gögnum. Og þetta er mjög mikilvægt þegar við erum að tala um IOS app þróun vegna þess að allt sem til innan IOS app er í meginatriðum hlut af einhverju tagi. Og hlut er í grundvallaratriðum a flokki eða enum eða strúktúr. Svo í þessu tilfelli er ég skilgreina nýja tegund af gögnum að ég er að hringja mat það er sumir eiginleika, þar á meðal nafn og röð af einkunnum. Svo ein tegund af mat að ég gæti hafa í huga væri Skyndipróf, til dæmis. Ég myndi vilja hafa óákveðinn greinir í ensku mat sem var quiz og að höfðu ýmsar bekk í tengslum við það, fyrir spurningakeppni einn, quiz tveir, svo á og svo framvegis. Eða ég gæti hafa annars konar við mat á vandamál setur. Og ég get gert hlutina. Ég get í raun hafa aðgerðir innan þessa tegund gagna, sem nú eru kallaðir aðferðir. Svo ef þú alltaf sjá orð aðferð, það virkilega er bara fall sem gildir á mjög ákveðinn flokk, eða mjög sérstakur tegund gagna. Það gerir okkur kleift að breyta gögn innan. Svo í öðrum orðum, ef ég vil bæta einkunn mati mínu, þá er allt sem ég þarf að gera til að auka muninn sem var inntak við þessa aðgerð til innri eign mín. There 'annar snyrtilegur reisa hér í Swift, sem er þessi punktur punktur punktur rekstraraðila, sem þýðir að skora getur nú taka allir tala um heiltölur. Og skorar verður array af heiltölur sem hafa verið samþykktar að virka minn, sem þýðir að ég get gert efni eins og þetta. Ég get ekki bætt einkunnum og bara veita handahófskennt tölur heiltölur í það og í raun veitt fjölda af þeim gildum í virka minn eða í aðferð mína, eins og raunin er. Nú er þetta mikilvægt vegna þess að allt í Xcode, allt í IOS, er í raun hlutur. Þannig að það í huga þegar við brjóstmynd opinn Xcode og sleppa undan út IOS útgáfur tveir og þrír og í raun fara á útgáfu fjögurra. Og aftur, allt þetta mun vera settar á málþingi síðu. iOS fjögur er tegund af fullri alvöru framkvæmd mjög undirstöðu app. Og hvað þetta app gerir er það hleðst HÍ, sem lítur svona út. Aftur, ef við smellur á klippiborðinu við getum sjá að þetta er það sem það lítur út. Þetta er UI. Það hefur titil á the mjög toppur. Ég hef kallað það vefur gallerí. Í miðju það er þáttur kallað UI image. Og neðst það er tækjastika með einum hnappi sem hefur stretchy rými sem leyfa það til miðstöð í miðju þessu stikunni. Og það sem gerist er að þegar þetta það hleðst niðurhal á JSON skrá sem er gámur á netþjóni annars staðar, flokka að JSON skrá, og JSON skrá lítur svolítið eins og þetta. The JSON skrá lítur svona út. Það er það. Það hefur heiti albúms og það hefur fjölda af myndum. Hvert þeim myndir hafa nafn og einnig a URL sjálfir sem tákna að JPEG útgáfa af því einstaka mynd. Svo hvað gerist er að þegar þetta forrit álag, niðurhal það JSON skrá, flokka það, setur þetta allt í jafnvirði fylki í IOS app þróun, sem er nsarray. Og þá get ég þá hlaða þessi gögn í forriti og hlaða hana á skjánum mínum. Það er mynd sem var hlaðinn með hnappinum á mjög botn. Ef ég smelli Fá Næsta mynd, þá er það draga þessi mynd af internetinu og kemur í stað þessi mynd í UI mynd útsýni. Svo er hægt að sækja þetta og í raun taka a líta á það á tölvunni þinni. Og byggja það og í raun þýða það á tækinu. En í raun ferlið var þetta, búa til storyboard-- eða öllu heldur ekki create-- en velja klippiborðinu. Og í raun we'll-- ef þú mind-- ekki við munum taka bara nokkrar sekúndur að í raun sýna þér hvernig þetta var gert. Bara svo að hvernig við getum í raun ná þessu er gert svolítið meira ljós. Single skoða umsókn, ég er fara að kalla þetta námskeið fjórir fulltrúar þetta einkum tala. Vista það á skjáborðinu. OK, að fara að smella á klippiborðinu. Og það sem ég ætla að gera er að finna mynd sýn minni, draga hana inn notanda mínum tengi og sent það. Nú bara centering það því miður er ekki að fara að gera a heild einhver fjöldi, nema skjá sem er nákvæmlega þetta stærð. Þannig að við getum sannfært okkur um að með því að því að smella á þessa tvöföldu hring hlutur, uppeldi niður þessa pop upp valmynd hér og breyta að forskoða, þar sem við munum í raun fá tækifæri til að forskoða hvernig þetta mun í raun líta á önnur tæki. Eins getum við séð, eigum við ekki einu sinni sjá það á þessu tiltekna tilfelli. Þannig að ég ætla að loka þessu í bili. Og ég ætla að velja þetta icon niður á mjög botnhluta skjánum. Það segir Ásetningur Auto Skipulag Issues. Því miður, það er skera burt neðst. En ef ég smelli á það, það sem ég fá er þetta pop up-- fara burt. Það sem ég fá er þetta pop upp sem leyfa mér að bæta við vantar þvingun. Og með því að gera það það mun þá tegund af læsa henni í í miðju hluta opsins skjár eins og ég gæti átt von á. Nú til að fá þennan hnapp á ofan á það, ég þarf að fara til ritstjóra. Fara á Fella inn og smella Navigation Controller. Hvað það mun gera er að vilja bæta þetta allt annað hluti á það, en það mun í raun að tengja það aftur í upprunalegt UI minn. Og upplýsingar, aftur, er það ekki þarf virkilega að hugsa um núna. En ég vil að hafa Tækjastika á mjög neðst. Svo ég athuga sýnir Toolbar. Og þetta gefur innan mínu mati, sem er nú eitthvað annað, við getum séð það er tengt hérna. Það veitir nú tólastiku neðst á HÍ minni. Svo nú, frekar en að velja image, ég get fundið merki, eða öllu heldur toolbar-- við skulum sjá, hvar er það? Hvað er það kallað? A button-- atriði bar-- item-- sorry-- bar hnappinn atriði. Plop að það og beita par sveigjanlegu rými á hvorri hlið að í raun miðstöð sem. Svo nú hef ég búið HÍ minn, í grundvallaratriðum. Og ég get gefið það nafn með Tvöfaldur smellur á the mjög toppur hér og segja vefur gallerí og svo framvegis. Nú aftur, þetta eru þættir sem eru fyrir hendi við sig. Og ég verð að tengja þá að númerið mitt sem Ég get gert með aftur að koma upp þessa tvöfalda hring helgimynd, breytast frá forskoðun. Sem, við the vegur, nú getum við séð er fallega miðju og mun líta vel út á ýmsum tækjum. Rofi til sjálfvirka, sem mun koma upp ViewController kóða. Og nú er þetta hluti mikilvægt. Í röð fyrir þú til að tengja þetta tveir þættir, númerið þitt til HÍ, þú velur hlutinn sem þú vilt tengjast. Þannig að í þessu tilfelli, við raunverulega vilt að umrita breyta mynd sem er innifalinn innan þessa UI mynd útsýni. Svo ef þú stjórna smella frá myndin skoða og draga, þú munt taka eftir því að þú færð smá bar, þegar þú lætur fara af öllu þessu pop upp mun eiga sér stað. Og það segir að við munum búa til tengingu. Og frá hér vil ég gefa það nafn, eitthvað eins og gallerí. Ýttu á Enter. Og þetta raunverulega afla breytu sem heitir gallerí sem ég get þá vísað í númerið mitt að skipta um mynd, til dæmis. Svo hvernig virkar þessi númer í raun líta? Jæja aftur, ég vil ekki að eyða of miklum tíma í það. Og ég hvet þig til að sækja það og taka a útlit. En eitt af mest mikilvægur þáttur er númer sem í raun ná mynd. Svo í þessu tilfelli sem ég vil að fá innan myndirnar mínar array, sem er að finna innan bekknum mínum. Ég vil skilgreina nafn og vefslóð sem hefur verið flokka út úr þessu JSON. Reyndar biðja tækið til að fá URL, að sækja slóðina frá þessu, og þá sækja gögn frá innihald þessa vefslóð. Þá umbreyta þessi gögn inn mynd með því að láta hana í HÍ mynd. Svo aftur, eru þetta allt mismunandi gerðir af hlutum, mismunandi tegundir af bekkjum. Og þá get ég þá sett minn gallery.image jafnt þessi gögn. Og það er tegund af kjöti það sem raunverulega er þá hægt að breyta þeim gögnum from-- breytingu myndin frá einum til annars. Svo aftur, vonandi núna a einhver fjöldi af the býr mun gera svolítið meira vit. Takið eftir að það er einhver upphrópunarmerki hér. The upphrópunarmerki eru meginatriðum tengjast optionals. Það sem ég er í grundvallaratriðum að segja er að án jafnvel stöðva til að sjá hvort það er gögn innan þessa valfrjálst, Ég ætla að fara á undan og gera ráð fyrir að það er og unwrap það. Mundu að við notuðum hliðstæðan konar pakka fyrir optionals og við þurfum að unwrap að pakka og draga gögn út. The upphrópunarmerki öfl sem raunverulega gerast. En ég veit að þetta er öruggur vegna þess að ég skoðaði til að sjá hvort mynd gögn eru jafnir að ekkert, ég hef athuga raun til að sjá hvort það valfrjálst var í raun ekki. Ef það hefði í raun ekki nú þegar. Og svo er ég viss um að þegar ég fæ að þetta sem ég get örugglega unwrap þessi gögn. Þú gætir líka séð það í form spurningarmerki. Svo ef við skruna niður að þar sem ég þurfa að raunverulega flokka gögnin. Svo ekki vera setja burt við þessi tegund af langur nöfn. Þú getur fundið í Apple hönnuða mikið tilvísanir til allra hluta í hlutir og öll þau ferli sem í raun gera þetta mögulegt. En eftir að þetta er fyrst og fremst fall þar sem ég gefa það einhverjum gögnum. Og ég fæ til baka einhverskonar gögnum. Og ég þarf að nota þetta sem leitarorð til umbreyta það inn í þessa nsdictionary? Sem er aftur, sem er valfrjáls nsdictionary. Sem ég þarf þá að athuga hvort það er til staðar. Svo ég geti notað það ef láta vel jafnaldrar þátta, þá veit ég að það valfrjálst reyndar inniheldur nokkur gögn. Eða það sem ég gerði hér var að bara gera ráð fyrir að ef það voru engar villur sem það er í raun öruggur. Allt í lagi, ég vil þakka þú allt mjög mikið fyrir að koma. Ég veit að þetta var mikið, en það var aðeins klukkutíma að tala um tiltekin nokkuð háþróaður efni. Og svo vonandi þú munt fá a tækifæri til að sækja allan kóðann og taka a betri, ítarlegur líta á það. Konar sannfæra þig af öllu af efni sem er að gerast. Og ég vil þakka þér allt aftur, fyrir komuna. Gangi þér vel með lokaverkefni þínum. Hafa a mikill dagur.