>> [Muzikos grojimo]
>> DAN AMRMENDARIZ: Kiekvienas, Sveiki atvykę į CS50 seminare,
iOS Programos plėtros su Swift.
Aš Danas Armendariz, ir aš auklėtojas kompiuterių mokslo čia Harvarde.
>> Ir kitą valandą bus whirlwind kelionė, kaip daug dalykų
apie šią temą, kaip mes gali tilpti.
Aš po visų kodo kad jūs pamatysite šiandien internete.
Mes gali nepavykti iš tikrųjų eiti virš visko
kad aš, kad aš parodyti jums šiame valandą.
Bet bent jau tikiuosi per Dėl kodo komentarai,
Galėsite pabandyti išsiaiškinti, kas tiksliai vyksta už tų dalykų,
kad mes ne visai gauti.
>> Apskritai struktūra šiandien aptarimas bus taip.
Pradėsime iš darote kai pagrindinė sintaksė su Swift kalba
vyksta į kai kurias sudėtingesnes sintaksė Swift kalba.
Kadangi kalba yra tikrai modernus ir ją
turi aukšto lygio daug funkcijos, dalykų, kad mes ne
matyti C visoje CS50 arba Net kai kitų kalbų
kad mes pradėjome vartoti CS50 kaip PHP,
todėl aš einu bandyti pristatyti taip pat kai temas,
yra susiję su aukštesnio lygio kalbomis kad jūs negalite matyti gylio CS50,
bet jūs pamatysite vėliau kompiuterių mokslo klasės.
Taigi jis ketina būti sandariai supakuotas valandą.
Ir prašome nedvejodami praneškite man žinoti, jei turite kokių nors klausimų.
Taigi, jei jus domina daro plėtrą
su SWIFT, ar tikrai bet iOS app plėtra,
yra daug reikalavimų pora.
Pirmiausia, jūs turite būti naudojant Mac, veikia pavyzdžiuose
kad mes ketiname naudoti šiandien, palyginti nauja versija OS
X. Tokiu atveju Bėgu X 10.5.
Galite būti paleista 10.11, jei norite.
Tačiau viskas, kad jūs ketinate pamatyti, yra įtraukti Xcode 7, o vėliau
kuris turi naujausią versiją SWIFT, kuris yra SWIFT 2.0.
Tai iš tikrųjų yra gana svarbus skirtumas.
A sintaksė daug turi pasikeitė gana ženkliai
kai kuriais atvejais iš SWIFT 1.0 kuris buvo išleistas pernai,
SWIFT 2.0, kuri tiesiog išėjo šį rudenį.
Taigi mes ketiname parodyti Swift 2.0.
Keletas dalykų daug, kad jums ieškoti internete
kai bandote gauti papildomos Informacija apie įvairių dalykų,
jums gali tekti aiškiai ieškoti Swift 2
o ne tiesiog senas Swift padaryti Įsitikinkite, kad jūs gaunate sintaksė teisinga.
>> Iš tiesų, tai paprastai yra teisinga.
Yra greitas suma plėtros vyksta Swift kalba
bet kada, nes "Apple" išleido jį, manau, ką, tai buvo šiek tiek daugiau nei metus
dabar.
Ir viskas pasikeitė smarkiai tuo metu.
Ir todėl nereikia būti nusivylė jeigu, jūs dairausi
temų Swift arba kaip pasiekti kažkas naudojant kai kuriuos pavyzdinius kodą
ar kažkas, kad ne realiai dirbti Swift 2.0.
Įsitikinkite, kad jūs ieškote specialiai tam versija
bandyti sumažinti poveikį skirtingi versijos ir tų dalykų rūšių.
>> Bandysiu atkreipti dėmesį tik kai kuriuos dalykus kad yra skirtingi, kad vyresnio amžiaus versijas.
Bet tai ką saugotis.
Tai tikriausiai bus vienas iš didžiausių galvos skausmų
kad jūs turite su Swift yra rasti pavyzdys kodas, kuris yra vyresnis, net tik
iki kelių mėnesių, bando naudoti tai jūsų modernesnio projektą.
Ir tai tiesiog neveikia.
Jūs gaunate kompiliatoriaus klaidų, sintaksės klaidų, visi crazy stuff rūšių.
Taigi tiesiog būkite kantrūs su , kad ir jūs, tikiuosi,
turi gana gražią patirtį su Swift apskritai.
>> Dabar jūs iš tikrųjų galite join-- ir aš tikiuosi, mes iš tikrųjų vis dar turi šią šį šarvuotuose
CS 50 obuolys App plėtros komanda, kuri
leis jums įdiegti jokių programų, kuris jums sukurti savo "iOS" įrenginius.
Taigi imtis šiame URL, jei išvaizdą Jus domina daryti.
>> Taigi tik porą dalykų apie save SWIFT.
Jis yra sudarytas kalba.
Bet jūs pamatysite, kad kai kurie iš funkcijų, kad mes naudojame
kad ji galėtų būti naudojama taip pat šiek tiek kaip aiškinama būdas, taip pat.
>> A sintaksė daug pasiskolinta iš C. Jis grindžiamas ir parašyta C
Ir todėl mes matome, kad yra daug takeaways daug
iš savo turimas žinias iš C, kad mes galime uosto Swift.
>> Tačiau yra dalykų, kurie kad ji labai skiriasi nuo C
Jis labai stipriai įvedėte.
Yra automatinis atminties valdymas.
Jūs neprisijungęs teks naudoti malloc arba nemokamai bet kurioje vietoje.
Jis sukurtas bendrumo.
Taigi, kitaip tariant, jūs galite naudoti ją Visi kontekstuose rūšių, iš Apple Žiūrėti
iPhone visą kelią iki OS X, ir net kai kurie serveriai, net kai skriptų.
Bet mes matome, kad parama scenarijus
yra ne visai ten dar kaip ji yra ir kitomis kalbomis.
Taigi, greičiausiai jums bus naudojant tai tik vystymosi
ant jūsų Mac arba jūsų iPhone.
>> Ir tai turi modernių funkcijų daug.
Ir iš šių dalykų yra dalykų, kad mes ketiname išbandyti šiandien spręsti,
bet ir mūsų temos, tiesą sakant, mes galime skirti visą kursus.
Iš tiesų, CS 51, kuris yra pasiūlė kitą pusmetį,
dėmesys dėl šių temų daug kad yra aprašyti žemiau.
Taigi jūs galite praleisti visą semestrą suprasti šiuos dalykus.
Tačiau mes ketiname pabandyti gauti per juos
bent pakankamai, kad jums gali suprasti, kas yra
vyksta, kai jūs žiūrite ne Swift programos
ir galės nulaužti savo kelią per jį per galutinį projektą.
>> Dabar vienas iš geriausių būdų, kad galite gauti papildomos informacijos apie tai
yra atvirai tik per Apple pateikė dokumentus dėl SWIFT.
Yra API daug , kurie yra prieinami.
Ir tai yra geras namų vieta Jums ieškoti, konkrečių dalykų, kad jūs
norite daryti su API dalyvavo iOS.
Jei norite naudoti fotoaparatą Pavyzdžiui, galite pradėti ieškoti čia
ir taip pat naudoti "Google" ir kamino Perpildyta kaip tai darytumėte įprastai.
>> Bet apie tai klausimai kol mes pereiti teisę?
Gerai.
Pereikime.
>> Taigi, pirmiausia, turiu Taškų pavyzdžiui failus.
Ir aš ruošiuosi pabandyti žingsnis per juos gana greitai.
Tai Hello World failą Swift.
Tai labai paprasta.
Yra būdas daugiau komentarų nei yra tikrasis kodas.
Atkreipkite dėmesį, tikrasis kodas yra pačioje apačioje eilutėje 14.
Ji sako spausdinti.
Ir tada tai skambinimo funkcijos.
Mes artimųjų į tai eilutė vadinama Hello CS50.
Atkreipkite dėmesį, kad ten nėra kabliataškiai.
Atkreipkite dėmesį, kad nėra int main.
Yra nė vienas iš cruft, kad mes turėjome su C.
Kai mes naudojame Swift šiuo būdu, kuris yra tiesiog parašyta tekstinį failą
ir saugomi mano kompiuteryje, tada Galiu rinkti ją ir paleisti jį.
>> Atkreipkite dėmesį, kad čia aš nenaudojate CS50 IDE.
Tai reiškia, kad aš esu veikia ir kad aš ant OS X,
ir kad aš Xcode jau įdiegta šiame kompiuteryje Kad ši
faktiškai funkcija.
Bet tai tiesiog normalus tekstinis failas kad mes galime tada surinkti ir redaguoti.
Taigi pažiūrėkime, kaip tai iš tiesų veikia.
Ką daryti, jei norite kompiliuoti tai?
swiftc 1.swift.
Po metu ar du, tai pamatysite, kad mes turime dabar
surinkti į failą pavadinimu 1 tai.
Ir dabar mes turime spausdinami mūsų CS50, Mūsų Hello World taikymas o.
>> Atkreipkite dėmesį, vienas kitas dalykas, kaip gerai yra tai, kad pagal nutylėjimą,
mes neturėjome įvesti A / N spausdinti naują eilutę.
Numatyta, kad spausdinimo funkcija Swift bus atspausdinti naują eilutę jums.
Galite pereiti neprivaloma papildoma parametras pasakyti, to nedaryti.
Tačiau "Google" daugiau informacijos apie tai.
Pagal nutylėjimą, jis darys spausdinimo liniją.
>> Visos teisės, todėl galime pereiti tada kai kurių kitų dalykų.
Taigi, kaip mes galime iš tikrųjų apibrėžia kintamuosius?
Mes galime padaryti, tai naudojantis vienas iš dviejų metodų.
Ir vienas, kad aš noriu jums pasakyti apie pirmą tai tegul apibrėžimas.
Ir tai yra svarbu, nes efektyviai
ką mes darome yra apibrėžti konstantą.
Mes ketiname sukurti kintamąjį, ar veikiau nuolatinis vadinamas vardas
teikti jai kai kurie data-- šiuo atveju, eilutė Danas.
Tačiau naudojant šį let raktažodžių, mes sakome,
kad tai variable-- arba vėl constant-- vadinamas
pavadinimas niekada būti pakeistas.
Tai bus nekintamas per visą šios programos trukmė
arba visoje trukmė kontekste
kad kintamasis yra prieinama.
>> Tai tikrai svarbu, kad kai turite kokių nors duomenų, kurie nėra
ketina keisti savo programą, ir pamatysite keletą pavyzdžių įvairovė
kai norime naudoti tegul, palyginti su kitų sintaksės,
svarbu, kad jūs naudojate tegul kur įmanoma, nes šio notifikuotų
kalba, kad jis yra nesiruošia būti pakeistas,
ir ji iš tikrųjų gali atlikti iš optimizavimas daug
siekiant pagerinti greitį ir Jūsų programos sauga.
Ir saugai, aš turiu galvoje ne tegul jis avarijos su beprotiškų klaidų
kad būtume pripratęs prie C
>> Tada mes galime naudoti string interpoliacija hermetyzacji tai per eilutę.
Taigi matome, šiame Spausdinti linija, spausdinti Sveiki,
ir tada naudojant backslash atviras skliaustai, ir tada mano kintamojo vardas,
šiuo atveju konstanta, uždaryti skliausteliuose.
Aš iš esmės tada išleidimą turinys Šis kintamasis vadinamas vardu
viduje eilutę ir tada spausdinti rezultatas ten.
>> Yra vienas kitas pakeitimas į šį failą kuris yra tai, kad aš, pačiame viršuje,
įdėti į Szulernia linija, kuri iš esmės tik nurodo,
kad aš noriu naudoti Swift vertėjas, kuris
reiškia, kad aš nebeturi kaupia šią konkrečią programą.
Galiu tiesiog paleisti jį kaip savo scenarijų.
Tačiau tai yra, šiuo atveju, už scenos yra kaupiami ir tada
vadovauja.
Tai tiesiog nematomas mums.
>> Gerai, tad judėti.
Taigi ten yra gudrybė tiek kad tik atsitiko anksčiau.
Aš jums parodžiau, kad aš gali apibrėžti konstantą.
Ir aš galėtų suteikti tam tikrus duomenis tai padaryti.
Tačiau šiuo atveju, pastebėsite, kad aš ne iš tikrųjų nurodyti duomenų tipą
, kad jis yra.
Ir tai dėl to, kad kompiliatorius Swift gali
išvadą, jog duomenų tipą tik remiantis dėl duomenų, kad aš įdėti į jį.
Nes jis žino, kad vertinant tai kintamasis čia, šie duomenys teisė
čia, tai žino, kad ji yra eilutė.
Ir taip ši konstanta vardas todėl bus eilutę taip pat.
>> Bet mes taip pat gali būti aiškiai apie tipą, kuris manimi
mes ketiname naudoti konstantos arba kintamieji
naudojant šį sintaksė instead-- tegul vardas dvitaškis Styginių lygus
Danas, kuris šiuo atveju reiškia, kad mes esame ketina nustatyti pastovų vadinamas vardą.
Tai bus tipo eilutę.
Ir vertė bus Danas.
Dabar kitas būdas, kad mes galime sukurti variables--
ir tai yra permainingas kintamieji, kurie tai reiškia, kad mes esame, iš tiesų, vyksta
pakeisti jų turinį kažkada atsižvelgiant į aplinkybes trukmę
kad kintamasis defined-- mes naudoti var raktažodį vietoj tegul.
Bet vėl, pagal nutylėjimą, jei žinote, kad jums reikia manipuliuoti, kad duomenys,
pabandykite naudoti tegul už efektyvumu.
>> Šiuo atveju, galiu tada nurodyti duomenų tipą
kad mes tikimės, kad viduje Šis naujas kintamasis vadinamas etiketė.
Tai bus įtemptas.
Ir mes ketiname tada Jungiant dvi eilutes kartu, styginių Sveiki,
ir styginių atstovavo šiuo kintamasis, ar veikiau nuolatinis pavadinimą.
>> Taigi tai yra gražus, nes tai yra šiek tiek PHP kaip ir kad mes
labai lengvai simbolių eilučių sujungimas.
Mes neturi automatiškai naudoti bet atminties valdymas rūšiuoti
padidinti dydį ir daryti bet juokingas dalykų ten rūšiuoti.
Tai veikia, kaip mes iš tikrųjų tikėtis.
>> Gerai, kokių nors klausimų apie tai?
>> Dabar kita priežastis, dėl kurios mes turime jums turėti galimybę
gebėti apibrėžti, kas Duomenų tipas kintamųjų yra
yra todėl, kad kartais mes darome ne nori inicijuoti kintamieji
su kai tuo duomenimis taškas apibrėžimą.
Taigi šiuo atveju, tarkim kad aš noriu pradėti įvedusi
kai į A klasės knygą rūšių.
Na aš žinoti, kad vienas iš kintamieji, kad aš noriu būti
ketina būti permainingas laipsnio.
Ir mes taip pat žinome, kad noriu, kad ji būtų sveikas.
Bet gal mes dar turite, kad kokybės nėra.
>> Swift, turite apibrėžti duomenų tipą
, kuris yra susietas su kintamasis arba tegul pastovi
Prieš jūs iš tikrųjų galite naudoti, kad kintamasis.
Kadangi ji yra labai įvedėte, jūs turite susieti tipas
šių kintamųjų.
>> Taigi šiuo atveju, jei aš netinkamai inicijuoti pirmasis su kai verte,
tada man reikia pasakyti, kas Swift Tikiuosi, kad duomenų tipas turi būti.
Ir jis ketina likti ta pati duomenų tipas
visoje šios programos istoriją.
>> Dabar jums gali būti linkusios kuo greičiau Aš sukūriau šią klasę kintamasis
ir tai yra sąlyga, sveikasis skaičius 100, o dabar, jei aš
noriu pabandyti Jungiant eilutė su tuo sveikasis skaičius,
gali būti linkusios vis dar naudoja kad simbolių eilučių sujungimas operatorius
kaip mes padarėme tik keletą eilučių anksčiau.
Bet deja, Tai bus tikrai ne
dirbti, nes jūs esate iš esmės atlikti
on dviejų skirtingų tipų operacija.
>> Dabar tai yra labai skiriasi nuo kitos kalbos, kaip PHP, kurie tikrai
loosey Kvailys su savo rūšies tipus.
Jie tiesiog patinka, taip, kas, man tai nerūpi.
Tiesiog duok man vieną tipą ir gal aš daryti teisingus dalykus.
>> Šiuo atveju, Swift labai griežta apie tipus
kad jums yra susijusios su.
Tai sumuojant operatorius arba sujungimas operatorius
turi esmės yra pora įvairių galimų alternatyvų.
Jūs galite tai padaryti sumavimo su skaičiais, arba
gali padaryti simbolių eilučių sujungimas ir galbūt kai kiti daiktai, taip pat.
Bet jei tas operatorius nepripažįsta kas yra ant abiejų jo pusėje,
ar veikiau tų funkcijų deriniui dviejų tipų, yra ne tai, ką ji laukiasi,
tada jis ketina sukelti gedimą.
>> Taigi šiuo atveju, ką tai reiškia turėti eilutę plius sveikasis skaičius?
Na kontekste tai, mes tikriausiai nori
padaryti simbolių eilučių sujungimas veikimą.
Bet, žinoma, kompiuteris neturi tokios konteksto rūšiuoti.
Ir todėl mes turime teikti papildoma informacija
tegul jis žino, kas tai yra tai, kad mes norime daryti.
>> Taigi, kitaip tariant, dėl to, kad SWIFT yra stipriai įvedėte
reiškia, kad jūs turite padaryti šiek tiek papildomo darbo
gauti jį eksploatuoti būdas, kad jūs norėtumėte.
Bet, kaip rezultatas, jis yra saugesnis.
Ir kai jūs turite imtis į šiuos tipus,
dalykai tiesiog atvirai pradėti dirbti gana gerai.
>> Taigi, šiuo atveju, mes tada būtų atlikti simbolių eilučių sujungimas
, aiškiai liejimo į eilutę sveikasis skaičius
vyniojimo šiame kapitalo S Styginių funkcija,
ir tada naudojant simbolių eilučių sujungimas operatorius keisti mūsų etiketės kintamasis,
ir tada atsispausdinti.
>> Kol kas viskas gerai?
Gerai, pereikime.
>> Dabar yra įvairius duomenis tipai, mes galime naudoti SWIFT.
Kaip jūs jau įprato, mes galime sukurti permainingas masyvo.
Ir tai masyvas gali tik būti vienas tipą.
>> Taigi šiuo atveju, mes ketiname sukurti a permainingas matricos sveikieji skaičiai, kurie
mes vadiname pažymius, ir mes galėsime saugoti, kad šioje kvadratinį kronšteino
formatas, kaip jūs įpratę į kitų kalbų įvairovė.
Tačiau pastebite, kad čia mes apibrėžti keletą dalykų.
rūšių yra permainingas variable-- mes ne naudoti tegul raktinį žodį.
Taigi tai reiškia, kad mes galime tada pakeisti šio masyvo turinys.
Tai tipo Array Žiniasklaida, ir mes galime pasakyti, kad
remiantis šiais laužtiniuose skliaustuose čia.
>> Dabar vienas iš gražumynai apie tai, kad mes
turi prieigą prie daug Papildoma informacija
apie masyvo tik naudojant kai paprastas taškas notacija.
Taigi, pavyzdžiui, grades.count suteikia mums
vienetų skaičius, kad egzistuoja, kad masyvas, kurį mes galime tada prieiti gana
lengvai tiesiog naudojant tą dot notacijos.
>> Jei norite pridėti papildomą elementus į šio masyvo,
jūs negalite padaryti PHP stilius kur jūs tiesiog aiškiai apibrėžti,
bent tam tikro indekso, kai vertė kad norite įterpti.
Vietoj to, naudokite APPEND metodas masyvo tipo
pridėti šį elementą, 95, prie šio sąrašo.
>> Taigi, dabar šis masyvas turi šias contents-- 100, 0, 90, 85.
Ir dabar mes pridėti 95, kad taip pat.
>> Yra ir kitų būdų mes galime pridėti dalykų.
Jūs iš tikrųjų galite naudoti sumuojant operatorius,
kuris bus aiškinama kaip masyvas Papildyti operacija.
Ir tada galite pridėti kitą masyvas, kurio turinys yra 70 ir 80,
to masyvo.
Taigi dabar mes turime turinys Šiame kintamajame
grades-- 100, 0, 90, 85, 95, 70, ir 80.
Tai tik gražus sintaksinis cukraus, kad SWIFT teikia mums.
>> Taigi, jei norime, kad susumuotų rūšių, mes galbūt
ketinate norite pakartoti per kiekvieną šio ciklo dienos.
Ir mes turime, Swift, sąvoka iš už linijos, kaip būtų galima tikėtis.
Bet taip, kad mes rodo intervalas yra šiek tiek kitoks.
Taigi, šiuo atveju, siekiant Apibendrinant viską, mes
ketina sukurti laikinas kintamasis vadinamas suma tam, kad mus
išlaikyti šią skaičius.
>> Ir pastebėsite mūsų For kilpa statybos čia.
Dėl indekso 0 .. <grade.count.
Taigi, tai statybos, 0 .. <grades.count yra diapazonas operacija, kur mes esame
sakydamas, kad mes ketiname sukurti iš sveikųjų skaičių intervale nuo 0 iki
į bet išskyrus grades.count.
Taigi, šis bus 0, 1, 2, 3, 4, 5, iki Tačiau daugelis vieną
prieš grades.count.
>> Taigi, šis yra kitoks, nei kaip mes būtų paprastai naudojami kilpų
kur jūs turite šiek tiek indeksą kintamasis, nustatykite jį lygų 0, pirmiausia,
ir tada integruoti, kad iki kai vertė mažesnė nei daiktų skaičius
toje masyvo.
>> Taigi yra modifikacija tai, iš tikrųjų,
kuri leidžia mums lengvai nustatyti skirtingų tipų ribas.
Jei pakeisite šį diapazoną trys taškeliai, 0 ... grade.count,
Tai reiškia asortimentą 0 į grades.count imtinai,
Tai reiškia, kad, kad skaičius yra taip pat tada, įtrauktų į tą intervalą.
>> Bet tai labai patogu šių tiksliųjų dalykų,
kai mes turime atlikti iteracijų per kilpa
nes tie indeksai yra nulis indeksuojami, kaip matėme kitomis kalbomis
taip pat.
Bet apie tai klausimai kilpa?
>> Taigi ten numanoma apibrėžimas Šio indekso kintamasis,
kurių vertė prasideda "0" ir toliau kiekviename ciklo iteracijos
padidinti 1 iki tol, kol taško kuris yra lygus grades.count,
nes tuo metu, kilpa nutraukia.
>> Atkreipkite dėmesį, kad mūsų eilutę interpoliacija čia
mes iš tikrųjų galite atlikti keletą paprastų manipuliacijos į šias vertybes.
Taigi indekso plius 1 tikrai bus atlikti tos vertės sumavimo
nes indeksas yra šiuo atveju, yra sveikasis skaičius.
Ir tuo momentu, ji bus tada bus paversta eilutę
ir interpoliacijos į šią eilutę čia ir atspausdinti kaip galima būtų tikėtis. ,
>> Ir malonus dalykas apie masyvų čia
kad mes taip pat galėtų turėti Gaunamos vertės ir nustatyti dydžiai
naudojant kvadratinės laikiklis notacijos kaip mes matėme kitomis kalbomis, taip pat.
>> Visos teisės, todėl iš čia, mes dabar apskaičiuoti mūsų sumą visi mūsų klasėse.
Dabar tarsi šalia logiškas žingsnis būtų
padaryti skaidymo procedūrai rasti iš šių klasių vidurkis.
Bet kažkas svarbaus čia vyksta, kuri
yra tai, kad ši suma yra turbūt sveikasis skaičius.
Bet mums reikia atlikti kai kurias Rūšiuoti dvigubo padalijimo.
Ir tai bus labai svarbu, kai
mes norime atlikti šią operaciją, nes tai, ką mes sakome,
yra tai, kad mes turime iš tikrųjų atlikti padalijimo į du dviviečiai kambariai.
Ir vėl, nes Swift labai stipriai įvedėte,
turime aiškiai nustatyti visas elementus į dvejetų, kol mes iš tikrųjų
atlikti šią operaciją.
>> Taigi, kad galėtume atlikti dvigubą padalinys,
tai nėra pakankama tik vienas tų objektų būti dviguba.
Abu jie turi būti dvigubai, kad sparčiai
būti tikri, kad tai yra tai, ką mes norime daryti.
Taigi mes tada aiškiai Spausdinti medžiaga suma, kurią mes kompiuterinė aukščiau
ir klasių iki Dubletų skaičius, taip tada atlikti šią operaciją ir parduotuvę
kad į šią naują kintamąjį, ar veikiau Ši nauja konstanta vadinama vidutinė,
kuris turės kokio tipo, galite įsivaizduoti?
Dvivietis, taip.
Taigi, šiuo atveju, mes neturi tai nurodyti
nes ji gali būti kildinamas iš operacija, kokio tipo duomenų vidurkiu
bus.
Ir Swift paprastai gana geras apie galimybę daryti išvadą, tipus.
>> Norite pamatyti šį paleisti, ar aš galiu pereiti?
Noriu nesustoti.
Bet dėl ​​to klausimų?
Didysis.
>> Dabar mes ketiname pradėti gauti geras stuff-- apibrėžiant funkcijas,
ir kitų tipų, kurie yra pora unikalus Swift, kad jūs neturite
matyti kitomis kalbomis iki šio taško,
bet jie yra iš kitos, kalbos, kad jūs galite rasti vėliau.
Taigi, pirmiausia, jei norite apibrėžti funkciją,
Jūs apibrėžtumėte jį su funky žodis funkcija, ir tada funkcijos pavadinimas,
Ir tada skliausteliuose, argumentai kad norite, kad funkcija priimti.
Argumentai taip pat turi specify-- generally--
Taip pat būtina nurodyti duomenų tipą, kad jie yra, jeigu jie gali būti nustatyta.
Ir mes matome, kad tiek Rizika ir tik šiek tiek.
>> Taigi, šiuo atveju turime funkcija vadinama printGradeCount.
Mes ketiname priimti variable-- ar veikiau šiuo atveju,
constant-- vadinamas dienynams pildyti.
Ir ji ketina būti įrašykite sveikųjų skaičių masyvas.
Dabar kažkas tai tikrai svarbu čia
kad aš noriu jums suprasti.
Tai, kad pagal nutylėjimą, šie argumentai kad yra įėjimai į šią funkciją yra
apibrėžti numanomą let raktažodį o tai reiškia, kad aš negaliu pakeisti šį
dienynams pildyti kintamasis čia.
Ir tai tarsi prasminga, nes jūs artimųjų duomenis.
Ir jūs galbūt nenori turi būti pakeista iš pagal jus.
Tai galima aiškiai paminėti kad tai yra kintamasis, nes juose
var raktažodis čia.
Bet tai yra kabliuko, kad mes pastebėjau žmonės daroma anksčiau
yra tai, kad jie manė, kad ji vyksta kintamas, kai, iš tikrųjų, ją
yra pastovus.
>> Gerai, kad čia tada, šiuo atveju, mes ne nurodant bet kokį grąžinimo tipą.
Mes jums parodysime, kaip tai padaryti kad vos akimirką.
Tačiau pastebite, kad čia mes turime tik jei būklė paprasta.
Jei dienynams pildyti yra tuščias, kuri šiuo atveju
yra tik šio objekto sveikasis skaičius masyvas, tada mes atsispausdinti kažką.
Priešingu atveju mes darome ką nors kita.
>> Gana paprasta šiol manau.
Bet mane sustabdyti, jei turite kokių nors klausimų.
>> Dabar ši funkcija, vidutinis, taip pat atsižvelgiama kai kurie argumentai, ar veikiau vienas argumentas,
kuris yra dienynams pildyti, ir šį kartą ketina grįžti dvigubą tipą.
Nes jis yra skaičiavimo vidutinė ir tai
vyksta iš tikrųjų grįžti, kad apskaičiuotos vidutinės skambinančio linija.
>> Šiuo atveju, mes nustatančias grįžti tipo po rodykle.
Ir tai gali jaustis rūšies keistai iš pradžių.
Jūs įpratę nustatant grąžą
tipo iki funkcija pavadinimu.
Bet jeigu jūs manote, kad tai kalbant apie matematiką,
pavyzdžiui, kai jūs turite matematika kurios apibrėžia funkciją,
jūs turite funkcija, kai įėjimai, ir ji gamina išvestį.
Ir tai būtent tai, ką tai turėtų supanašėti.
Ir ten yra kitų kalbų pora kad turi panašią sintaksę, taip pat,
bet tikriausiai nė, kad Jūs mačiau CS50.
Bet vis tiek neturi būti painiojama juo.
Rodyklė reiškia tai, kas vyksta turi būti grąžintas ir šiuo atveju.
Gerai, taip, kaip mes ketiname apskaičiuoti šį vidurkį?
Na, jei dienynams pildyti yra tuščias, gerai tada mes
ketina grįžti 0, o gal protingas būdas gydyti tai.
Aš nežinau, tegul ateina atgal į tą, kuris truputį.
Tai gali ne iš tikrųjų būti protingas būdas
apskaičiuoti IF vidurkis turime tuščią dienynams pildyti.
>> Tada mes tiesiog atlikti mūsų sumavimo.
Atkreipkite dėmesį, kad mes čia iš tikrųjų turi alternatyvų versija
už kilpa, kuri leidžia mums kartoti per kiekvieną elementą masyvo
ir įdėkite kiekvieną elementą į savo kintamąjį.
Nurodydami už rangui dienynams pildyti, ką mes sakome,
yra tai, kad mes ketiname netiesiogiai sukurti naują konstanta, vadinama
Įvertinimas kad ketina atstovauti kiekvienas unikalus elementą dienynams pildyti
kiekvieną kartą, už Ciklas.
Taigi, pirmą kartą, kad tai paleisti, pažymys
pirmasis elementą dienynams pildyti.
Antrą kartą tai bus antrasis elementas, todėl toliau ir taip toliau
iki dienynams pildyti turi išsisėmė elementų.
Tada mes galėsime apibendrinti, kad Įvertinimas į mūsų sumavimo kintamojo
ir grąžinti mūsų vidurkis kaip matėme anksčiau.
Gerai, kokių nors klausimų?
Taip?
Auditorija: Turiu du klausimus.
Numeris vienas, hipotetiškai gali Paleidus sveikasis apie šį vieną?
Neturi būti dvigubai, yra tai, kad informacija?
DAN AMRMENDARIZ: Ar galite pakartokite šį klausimą?
Auditorija: Ar galiu tai padaryti sveikas kaip vidurkiu?
DAN AMRMENDARIZ: Ar galite padaryti sveikasis kaip vidurkis?
Taigi grąžina sveikąjį skaičių Vidutinis vietoj dvigubas?
>> Auditorija: Return-- jus turite, kad dabar toliau.
DAN AMRMENDARIZ: Dešiniuoju čia grįžti 0.0?
Auditorija: Taip, tik grįžti 0.
Taigi, tai bus arba 80 arba 85, bet ne 85,2.
>> DAN AMRMENDARIZ: Taigi šiuo atveju, todėl ten pora skirtingų būdų
atsakyti, kad.
Leiskite atsakyti juos tvarka.
Taigi, jei aš tiesiog padaryti šią deklaraciją 0, taikomas 0 yra sveikas skaičius, vertė.
Ir taip, kad sukels tipo klaida šiuo atveju
nes ji laukiasi dvigubai bet paskui grįžta sveikasis skaičius.
Jei aš noriu grįžti sveikasis skaičius, galiu.
Galiu nustatyti grįžimo tipas į int, grįžti 0 čia
o ne atlikti dvigubą padalinys.
Bet tada mes būtume daro sveikasis padalinys.
Ir taip mes tada nebūtų gauti Vidutinė kad mes galbūt tikėtis.
Bet taip mes galime pakeisti kad tokiu būdu tipai.
>> Auditorija: Ir antra, jus turėti vieną dvigubą ant viršaus.
Bet apačioje, kai jūs padaryti grįžti Double Double,
tai jau automatiškai grįžti Double formatą.
Kodėl jūs vis dar reikia ją apibrėžti su rodykle ant viršaus su dvigule?
>> DAN AMRMENDARIZ: Taigi tuo atveju,, tai yra dalis
iš the-- taip pakartoti klausimą, nes tai išvestinis iš grąžos
rūšys čia, kokio tipo tai iš tiesų yra, mes turime būti aiškiai su Swift
apie tai, ką mes norime grįžti iš šios funkcijos
taip, kad, kai jis atlieka tipo tikrinti, ji gali įsitikinti,
kad tai, ką mes iš tikrųjų parašyta apačioje iš tikrųjų atitinka tai.
Taigi, tai tarsi kaip patikrinti su savimi tarsi situaciją.
Tačiau are--
>> Auditorija: [nesigirdi] arrow?
>> DAN AMRMENDARIZ: Yra atvejų, kai mes galime nurodyti, kad mes galime netiesiogiai
nustatyti grįžimo tipo.
Tačiau šiuo atveju, aš neturiu manau, kad galėtų dirbti.
Yra keletas kitų sintaksė kad mes pamatysime vėliau.
>> Visos teisės, todėl šis šaltinis kodas yra šiek tiek kitoks
nes tai suvokia argumentus iš funkcija, kad mes skambina.
Leiskite parodyti jums, kaip tai veikia kol mes iš tikrųjų pereiti
kai įdomių dalykų kad vyksta Swift.
>> Taigi, šiuo atveju, jei aš tiesiog paleisti ši kodas, pastebėsite, kad tai, ką jis daro
is-- o tai rūšies man suteikia keistą klaidą.
Man reikia praeiti jai porą sveikieji skaičiai, kaip komandinės eilutės argumentas.
Taigi pažiūrėkime, 150 ir 80, ir paspauskite Enter išsiaiškinti, ką jis iš tikrųjų daro.
Tai priimdamas kiekviena Šios vertės sveikieji skaičiai.
Jis juos nusiunčia į dienynams pildyti.
Ir tada jis atlieka kad vidutinis skaičiavimas
ir išvedė, kad mes galime tikėtis.
>> Tačiau akivaizdu, kad kažkas vyksta su šiuo atmesti kažką
kažkas kaip sveikasis skaičius.
Kaip jūs tikriausiai pamenate, nuo tada, kai mes buvome susijusius su komandų eilutės argumentai
C ir kitomis kalbomis, pats pirmas 0 tojoje toje komandinės eilutės argumentas
sąrašas yra komandą vardas kad mes iš tikrųjų įvykdytas.
Taigi šiuo atveju, aš tiesiog kilpų per visus komandinės eilutės argumentus.
Bet aš nesu daro kokią nors išgalvotas rūšiuoti Tikrinti praleisti daugiau, kad pirmasis.
Aš tiesiog aiškiai ar netiesiogiai aš tikrinti, kuri iš šių tipų
yra sveikieji skaičiai, prieš aš iš tikrųjų atlikti šį skaičiavimą.
>> Ir tai iš esmės kas čia vyksta.
Už kiekvieną argumentą Procesas argumentai,
Aš ruošiuosi atlikti tam tikrą patikrinimą.
Ir šiuo atveju, aš ruošiuosi pabandyti pirmą konvertuoti
šis argumentas į sveikojo skaičiaus pagal Atliekant aiškų Spausdinti medžiaga,
nes ji yra prie įėjimo, styginių o ne iš tikrųjų yra sveikasis skaičius.
>> Bet tai kokios keistos sintaksę, jei tegul padala INT (argumentas).
Ką iš tikrųjų vyksta čia yra labai
svarbi jūsų naudojant SWIFT.
Tai, naudojant tai, kas vadinamas neprivaloma tipo.
>> Taigi ši funkcija, INT (argumentas), grįžta ne tik sveikasis skaičius, bet grąžą
tai, kas vadinama pasirenkamas sveikasis skaičius.
Ir todėl tai tarsi tipo ant tipo.
Jūs galite rūšiuoti įsivaizduoti jį kaip jis grįžta kaip paketą.
Ir kai atidarote kad paketas, tai tiek
turi sveikasis skaičius, kuris yra rezultatas, arba jis turi absoliučiai nieko tai ne visi.
Ir tai yra naudinga, kaip klaidų tikrinimas mechanizmas, nes šiuo atveju
mes galime sužinoti, buvo šios konversijos tipo sėkminga?
Jei ji buvo, tada jis yra iš esmės teks sveikasis skaičius viduje.
Priešingu atveju jis ketina turėti kai vertė, kuri mes vadiname nulinis,
atvaizduoja ne sveikasis skaičius ne visiems.
Tai tikrai atstovas nieko.
>> Ir todėl tai jei statyba leidžia mums išsivynioti šį paketą,
kad neprivaloma privalomas.
Ir jei mes galime išvystyti, kad pakuoja ir rasti sveikuosius viduje,
kas tada mes sakome, čia yra, kad mes tada
leisti, kad vertė turi būti nustatyta į ši konstanta vadinama laipsnio.
Ir tai, jei pareiškimas dalis, viršuje dalis, jei pareiškimas
veiks, nes tai Išimkite buvo sėkmingas.
>> Jei jis tiesiog taip atsitinka, kad ten gal buvo klaida
Šioje aiškaus tipo konvertavimo nuo eilutę sveikasis skaičius, o gal
tai vertė ABC pvz.
Ir tai tikrai nesiruošia konvertuoti į visumą.
Tada jis grįš lygus nuliui, kuris yra ne sveikasis skaičius.
Ir tai, jei pareiškimas gerai tada nepavyks.
pažymys neegzistuoja, nes ji neturi sveikasis turinį.
Ir tai bus paleisti šį kita blokas vietoj.
Taip?
>> Auditorija: Nėra yra N-I-L?
DAN AMRMENDARIZ nulis yra N-I-L, taip.
>> Taigi, tai yra galbūt vieną iš sudėtingiausių dalykų apie SWIFT,
ypač kai esate ant iOS app piktžolės
ir jūs iš tikrųjų bando padaryti tam tikrą vystymąsi ten.
Tai bus šaukiantį ne jums apie neprivaloma.
Ji ketina būti užduoti jums klaustukai ir šauktukai.
Bet kai jūs suprasite out-- jei jus skirti šiek tiek laiko suprasti,
kas vyksta su pasirenkamais tipų, jums sutaupyti sau galvos daug
kaip jūs bandote rašyti Swift programą.
>> Tai iš tikrųjų yra labai galinga funkcija.
Ir jūs tiesiog turite imtis savo žodį už jį dabar.
Bet mes pamatysime šį statinį ir kai kurie kiti patiks
kai kurie iš kitos kodo, kad mes jums parodysime, vos truputį.
>> Ar yra kokių nors pradiniai klausimai čia?
Taigi svarbu, Takeaway yra tai, kad neprivaloma tipas yra tarsi metatype.
Jis arba turi vertę, ir, jei jis nėra, tada jis
galbūt turi tą vertę, susijusią su juo, ar jis neturi vertės galios,
ir jis atstovauja nuliui.
To poilsio galbūt kaip galima tikėtis.
>> Taigi leiskite kelią iki sunku dar kartą.
Ir šį kartą, tegul pažvelgti į kai išvaizdą kitų duomenų tipų, kurie iš tikrųjų egzistuoja.
Vienas iš jų yra žodynai, kuris yra labai panaši į Python žodynų.
Tai šiek tiek panašus į maišos lentelę C. Tai yra iš esmės raktų kartografavimas
kur raktai gali būti be įsipareigojimų.
Ir kada jus ieškoti tuos raktus, šie raktai turės vertę.
Taigi, tai ne visai masyvas, bet Vietoj to, labiau susijęs
į hash žemėlapyje arba maišos lentelė.
>> Pažiūrėkime, kaip tai turėtų dirbti, kol mes iš tikrųjų
eiti į kodo pati.
Jei aš tiesiog paleisti tai, nieko tikrai atsitiks.
Jis pasakojo, kad aš laukiu kai kurie iš šių tipo parametrai.
Taigi, aš ruošiuosi pateikti tai kai problema nustatyti vardai
taip pset0, gal aš 100.
Ir pset1, gavau 5.
Ir tada į egzaminą, aš padarė tikrai gerai ir gavo 30.
Ir Oi, aš paspauskite erdvę čia.
>> Kai aš paspauskite Enter, jūs galite pamatyti jis atlieka tam tikrą skaičiavimo.
Ji sako dienynams pildyti yra trys rūšių, pset1, pset0, egzaminas.
Ir dienynams pildyti turi Šis specifinis vidurkis.
Taigi dar kartą, mes dirbame su šiuo dienynams pildyti idėjos
bet mes ketiname toliau Iteracja su mūsų funkcija sudėtingumo.
>> Taigi tuo pradžios, mes tik ketina sukurti funkciją, kuri
yra atsakingas už spausdinimo naudojimas.
Ir ten tai išeiti funkcija, kuri tiesiog
prievarta mesti paraišką.
Tai nėra kažkas, kad Jūs naudojate iOS app.
Tai tik, šiuo atveju, su komandinės eilutės argumentas.
Kitas mes pradėsime juda link Xcode.
Tačiau tai yra specifinė komandą linija stiliaus programa Swift.
>> Paimkime pažvelgti į kai įdomių dalykų čia.
Pažiūrėkime, tik pora įdomių dalykų paminėti galbūt
yra tai, kad savo funkciją spausdinti pažymių skaičių,
jums gali priminti, kad turėjau šį sąrašą iš items-- pset1, pset0 ir egzaminą.
Jūs iš tikrųjų galite greitai ir lengvai tai padaryti
imant dienynams pildyti, kuris yra žodynas kuris turi raktus ir reikšmes.
Visus rakto yra per DOT raktai metodas čia
ir tada naudoti šį joinWithSeparator, kuris bus tada visi raktai
kad mes įvedėte, pset1-- arba Atsiprašome, pset0, pset1 ir exam--
ir Jungiant juos kartu naudojant kablelį ir vietos
sukurti vieną ilgą eilutę.
Ši prisijungti operacija yra tiesiog fenomenaliai naudinga įvairiuose kontekstuose.
Ir todėl tai joinWithSeparator.
>> Ir tai yra vienas dalykas, kad pasikeitė nuo Swift 1 Swift 2.
Yra naudojami būti Python style-- jei esate
susipažinęs su Python-- Python stilius prisijungti metodą stygos.
Bet, kad nebėra Į Swift 2 atvejis.
Jūs norite naudoti šią parinktį jei norite Jungiant žinutę daiktų masyvo
kartu su eilutę.
>> Taigi, galbūt tada mūsų diskusija vidutiniškai anksčiau,
tai daro šiek tiek daugiau prasmės mums nustatyti vidutinį funkciją
būti pasirinktinai dvigubą o ne tik aiškų dvigubai.
Kadangi mes turėjome, kad neįprastas būklė, kai,
Ką daryti, jei dienynams pildyti tikrųjų neturi per jį vertybes?
Ką reikėtų vidutinė grąža?
>> Na gal jums C būtų padaręs kažką
kaip numatyta kontrolinio vertę, pavyzdžiui, 0.0, gal neigiamas skaičius,
ar kažkas tiesiog atstovaujantis tai kad ten buvo keletas klaidų būklė
ir jūs galbūt ne iš tikrųjų turėti gebėjimas apskaičiuoti, kad vidutinis.
Na nurodymo grožis neprivaloma tipas būtų tai padaryti.
Ir aš dabar sako, visus šiuos žodžius, bet Tai iš tikrųjų nenaudoja Papildomi reikmenys.
Bet mes pamatysime, kad tik minučių, jei mes galime nustatyti vidutiniškai
būti pasirinktinai duomenų tipas taip, kad jei ji iš tikrųjų grįžta tam tikrus duomenis, tada
grįšime, kad duomenis.
Priešingu atveju grįšime nulinis, sakydamas, kad tai
neturi reikšmingos skaičiavimus.
>> Pereikime į ką nors kita.
Taigi iš čia, mes jau žiūri Visi šie pavyzdžiai komandų eilutę.
Bet iš tikrųjų, ką jūs ketinate būti susiję su tai Xcode.
Ir vienas iš naudingų dalykų apie Xcode yra ir konkrečiai Swift,
yra tai, kad mes turime tai dalykas vadinamas žaidimų aikštelė.
Ir žaidimų aikštelė yra ne visi iOS app.
Bet jis leidžia jums eksperimentuoti su Swift labai lengvai.
Galite įvesti visus savo kodą.
Tai gražiai sintaksė pabrėžė čia.
Kai kuriate naują failą, jis paprašys Jums, jei norite sukurti žaidimų aikštelė.
Bet Gražus dalykas, apie žaidimų aikštelėje yra tai, kad ant savo lango dešinėje,
ji iš tikrųjų parodyti jums, išėjimas iš savo kodą.
Taigi, jei aš slinkite žemyn, mes galime pamatyti, kas įvairių eilučių kodo išėjimo
iš tikrųjų atsitinka būti.
>> Taigi šiuo atveju, mes ketiname pakeisti kryptimis truputį
ir kalbėti apie tai, kas iš tikrųjų Svarbu Šiame aukšto lygio būdu
kad SWIFT veikia, ir ji tai uždarymo idėja.
Ir jūs tikriausiai nematė šio truputį JavaScript.
Tiems iš jūsų, kad yra CS50, uždarymo
yra labai populiarus, labai geras būdas tai padaryti aukšto lygio dalykų šiuolaikinių kalbų.
Bet tai taip pat rūšies sunku wrap savo galvos aplink pirmą kartą.
Taigi, jei jūs ieškote ši Pirmą kartą, kad viskas OK.
Tiesiog pažvelgti į kodą ir pamatyti jei galite figure it out namuose.
>> Taigi šiuo atveju, tarkime, kad mes norite sukurti rodiklių daug
su tam tikru fiksuoto vertės.
Taigi, šiuo atveju galiu sukurti funkciją.
Aš ruošiuosi jį vadiname galia 2, kurio vienintelis tikslas gyvenime
yra šiek tiek įvesties ir dvigubo tai, ir grąžinti šią vertę.
Atkreipkite dėmesį, kad aš esu čia priimantis vieną duomenų rūšį.
Tai bus kintamasis vadinamas x.
Tai tipo dvigubai.
Ir aš ruošiuosi grįžti dvigubą čia.
Ir aš tik ketina tai padaryti labai, atvirai kalbant, gana
naivus būdas padvigubinti šią vertę.
Ir aš jums parodysiu, kodėl šis yra naudinga, tik sekundę.
>> Atkreipkite dėmesį, kad čia mes turime šį diapazoną dar kartą. nors 1, dot
dot dot, 2, tai reiškia, kad Šis ciklas bus paleisti du kartus.
Bet tai yra fiktyvus kintamasis.
Tai reiškia, kad aš nesu tikrai ketina naudojate, kad kintamasis niekur
viduje šio kilpa.
Aš tik noriu šią eilutę kodo paleisti du kartus,
nereikia žinoti tos diapazone vertė.
>> Taigi šiuo atveju Bėgu rezultatą kartus x du kartus, kuris iš esmės
tai reiškia, kad aš suvedimas šią vertę.
Ir tai atsitinka dirbti kaip galima būtų tikėtis.
Galia 2, einančios vertė yra 2.0 suteikia mums 4 išėjimo.
3.2 aktyvumas 10.24.
>> Dabar mes galime padaryti panašų dalykas galios 3.
Bet dabar pakeisti tik spektrą.
Dėl fiktyvus kintamasis 1 per 3, dauginti 3 kartus,
ir daryti tą patį.
>> Taigi, tai gali jaustis šiek tiek nenatūralu.
Bet yra svarbus dalykas čia, kurie
yra tai, kad žiūri į tai dvi funkcijas, yra
tik vienas dalykas, kad skirtingi, kuris yra ši reikšmė yra intervale.
Visa kita apie šias dvi funkcijos, galia 3 ir galia 2,
yra, iš tiesų, identiški, nes jie dirba tuo pačiu būdu.
>> Taigi, šiuo metu, šiek tiek ŀadintuvas turėtų būti nenukryptų.
Tikimės, kad tai, ką jūs sakote, Jūs žinote, tai jaučiasi šiek tiek
kaip pastangų dubliavimo.
Galbūt yra būdas, kad aš būtų galima įdėti į kapsulę visa tai
ir suteikti funkciją arba sukurti funkciją, kuri
daro būtent tai, ką aš noriu be kuriems tipo it out aiškiai.
Ir tai, kas maitinimo iš uždarymo leidžia mums daryti.
Taigi leiskite pažvelgti šią išvaizdą.
Ir aš praleisti pora minučių apie tai, nes tai
yra gana svarbus Swift.
Mes tai visą laiką.
Mes ketiname apibrėžti funkciją.
Jis bus vadinamas powerOf.
Ji ketina sutikti su parametras vadinamas y tipo Žiniasklaida.
Bet pažvelkite grįžtamasis išvaizdą.
Grįžtamoji tipas yra skliaustai, Dvivietis arrow dvigubai.
Tai reiškia, kad šią funkciją, Ši funkcija powerOf,
grįžta funkciją.
Tai priimdamas dvigubas ir grąžinti dvigubą.
Taigi, kad gali skambėti rūšies kvailai, bet tegul slinkite žemyn truputį
ir pažiūrėkite, kas vyksta.
Mes viduje Ši funkcija powerOf.
Mes sukurti naują funkciją vadinamas exponentiator,
bet tai nesvarbu, kas tai yra.
>> Atkreipkite dėmesį, kad tai yra įvesties vertė x.
Ir tai yra atsižvelgiant į dvigubą ir grąžinti dvigubą.
Ir tai yra tas pats kodas, kad mes minėta pirmiau, išskyrus tai, kad nuo 2 vertės
arba 3 vertė, tai viršutinė riba yra tame diapazone,
buvo pakeista šis iš y vertė, kuri
buvo pradinis parametras Mūsų powerOf funkcija.
Ir šiuo metu, mes grįžti exponentiator.
Mes grąžinimo funkciją.
>> Tai lyg nedidele tai pučia.
Tačiau įsivaizduokime, kas atsitinka, kai aš vadinu šią funkciją powerOf
ir perduoti į jį šiek tiek vertę kaip 2.
Tai reiškia, kad yra Aš dabar turi vertę
2 už y, o tai reiškia, kad šios vertės Y šiame exponentiator funkcija
bus ta vertė 2.
Bet aš grąžinant exponentiator funkcija.
>> Taigi pastebėsite ką Swift sako man sukūrė ir šiuo atveju.
tegul kvadratas yra apibrėžimas, tai funkcija, kuri priima dvigubas
ir grąžina dvigubai.
Aš sukūriau funkciją kad kvadratų kažką
naudojant šį mechanizmą čia.
Ir tikrai, kas vyksta yra kad ji grįžta šią funkciją
exponentiator, tačiau ši vertė Y yra suvynioti viduje ji.
Ir todėl dabar kiekvieną kartą aš naudoju tai kintamoji, ar ši konstanta vadinama
kvadratas, tai jis vyksta elgtis kaip funkcija.
Ir taip aš galiu tada skambinti, kad kintamasis kaip aš vadinčiau funkciją,
ir perduoti į jį numerį, kaip šiuo atveju 3.
Ir aš tada kvadratinių šią vertę.
Taigi 3 kvadrato tada tapo 9, kaip matome čia.
>> Tikrai kvailai, bet tai dabar leidžia man galimybę
sukurti kitą powerOf funkcijas.
Kaip aš galiu pasakyti, gerai, gerai, dabar aš noriu sukurti naują funkciją, powerOf (3),
ir laikyti, kad į "A pastovus vadinamas kubas.
Ir dabar kubas ketina būti atskiras funkcija, kad bus tada
šiek tiek kaip pirkimo ir kubo reikšmę, vertė kaip matome apatinėje eilutėje
čia.
kubas 2 ketina sukelti 8.
>> Tikimės, kad gana tvarkingas dalykų.
Jūs niekada anksčiau.
Raginu jus pažvelgti į uždarymo ir ištirti tai šiek tiek daugiau.
Tai tikrai galingas dalykų matome daug JavaScript ir kai kurių kitų kalbų.
Tai tikrai svarbu suprasti API, taip pat
kad mes gauti vos per sekundę.
Taip?
>> Auditorija: Kai jūs powerOf (2), skliausteliuose, tada
kitas skliausteliuose, kitas input-- jūs iš esmės pakeisti kvadratu.
DAN AMRMENDARIZ: Taigi ieškoti per paskutinę eilutę čia.
Jis iš tikrųjų yra visiškai įmanoma padaryti, kad susiejant kaip jums siūloma.
Taigi powerOf (5) reiškia, kad mes ketiname turėti 5 exponentiator čia.
Taigi, šis iš esmės vyksta būti tas pats, kaip 4 penktą galia,
nes mes sukūrėme exponentiating veikti penktą galia,
ir mes artimųjų į kad veiktų vertę 4.
Ir mes gauname tą vertę kad mes tikimės, 1024.
Auditorija: Ir tai ne vardas, todėl lengviau
skaityti, kvadratas nesvarbu.
>> DAN AMRMENDARIZ: Teisė, tiksliai.
Taigi, kol aš tiesiog įdėti jį į konstanta čia, kad
kad ji buvo lengva naudoti šį pavadinimą.
Taip?
>> Auditorija: Šiame kontekste powerOf, tai dalis
programavimo kalba o ne taip, kaip jums
galvoti apie powerOf į [nesigirdi]?
DAN AMRMENDARIZ: Taigi šiuo atveju, powerOf
yra tiesiog pavadinimas funkcija, kad aš apibrėžta čia.
Taigi tai nėra būdinga į pačios kalbos,
bet vietoj to, kad tai tik funkcija, kuri turi
tas pavadinimas, nes aš suteikti jai tą vardą.
Visi kiti klausimai?
Gerai.
>> Dabar tai yra puiku.
Bet jūs nesiruošia pamatyti daug uždarymo funkcijas,
yra, kaip tai, kur jūs apibrėžti viduje vieno funkcija, kitos funkcijos.
Ir jūs galite tai padaryti.
Bet tai tipo ne tikrai reikia, tiesa?
Kaip kodėl aš apibrėžti šią funkcija vadinama exponentiator
ir tada iš karto grąžinti.
Kodėl aš negaliu iš karto grįžti šią funkciją?
>> Ir iš tiesų, tai yra būtent Už koncepcijos idėja vadinama
anoniminiai funkcijos, kur anoniminiai funkcijos ne iš tikrųjų
turėti, nes jie vardas nereikia turėti vieną.
Ir taip, šiuo atveju, 7b, mes galime rasti būtent tai, kad.
Tai viskas tas pats kodas, daro lygiai tą patį,
bet dabar mes pakeitėme jį šiek tiek, kad tai powerOf funkcija karto
grąžina funkciją.
Atkreipkite dėmesį, kad po grįžimo, ten atvira garbanotas laikiklis.
Jis tikisi šį indėlį dvigubai.
Jis tikisi, kad produkcija dvigubai.
Ir tada Raktažodis atskiria patį kodą.
Taigi tai yra anoniminis funkcija.
Tai nėra iš tikrųjų turėti pavadinimą, o prieš tai buvo vadinama exponentiator.
Bet, kaip matėme, tiesiog tikrai nesirėmė exponentiator
ne tą funkciją.
Taigi ji neturėjo reikšmės.
Taigi, tai funkcija yra anoniminė taip vadinamas todėl, kad yra bevardis,
bet jis vis dar naudojamas šio kodo kontekste.
>> Artimiausius porą tie, aš ketina toliau tikiuosi
pučia jūsų protas truputį.
Mes galime supaprastinti šį dar daugiau.
Kadangi, kaip buvo Astutely minėta anksčiau,
Galbūt mes iš tikrųjų žinome, kurias išvadą iš šio kodekso, ką
Šio kodekso produkcija bus.
Ir iš tikrųjų, šiuo anoniminio funkciją, mes iš tikrųjų gali daryti išvadą, duomenų tipus.
>> Taigi tai viena, mes jau nebeturi reikia aiškiai apibrėžti
duomenų tipas, kuris manimi yra įvesties ir išvesties iš šios funkcijos
dėl daugelio priežasčių pora.
Vienas iš jų yra, kad mes apibrėžti, iki ne prototipas dengiančiosios funkciją,
kokio tipo duomenų anoniminę funkcija turi įėjimo ir išėjimo.
Ir iš kitos, mes galime numanyti iš kodo
žemyn, kad čia mes priimame įvesties tai tipo Double
ir grąžinti dvigubą.
>> Atkreipkite dėmesį, kad čia mes turime nėra aiškiai apibrėžė argumentų vardai
kad ši funkcija yra priimti.
Ir taip mes matome mes galime kreiptis į šie parametrai naudojant $ 0, 1 $,
tt ir taip toliau, priklausomai nuo to, tos parametro numeris, naudojamas
Šiame funkcija.
>> Tai yra kažkas, kad jūs ketinate pamatyti daug tai atvira garbanotas laikiklis
apibrėžimas, po kurio $ 0, ir tada kai operacija,
ir tada uždara garbanotas laikiklis.
Tai yra anoniminis funkcija , kuri atlieka šią operaciją.
Jis turi šį parametrą kur tai tipo yra numanomas.
Tai pirmasis parametras yra $ 0.
Ir kai operacija yra vyksta, kad $ 0.
>> Auditorija: Taigi doleris ženklas tai parametras, iš esmės,
ir 0 reiškia pirmasis?
DAN Armendariz: Tai teisinga.
Taigi doleris ženklas iš esmės reiškia, parametras, ir 0 reiškia pirmasis.
Bet tai veikia būtent Tai atvejis, kai aš ne pavadintas
Į mano anonimine funkcija argumentai.
>> Auditorija: Ar Perl ar kažkas turi tai dolerio ženklas, doleris 0 ten?
DAN Armendariz: Ar kuri, aš atsiprašau?
Auditorija: Ar Perlas turi Ši doleris 0, doleris 1--
DAN Armendariz: aš nesu per susipažinę su Perl,
bet kas apibrėžia kintamuosius PHP remiantis JAV dolerio ženklus.
Ir ten gali būti kai kurios kalbos kad turi funkcijas kaip šis.
Tiesą sakant, "Swift skolinasi daug funkcijų, pavyzdžiui, tai
iš kitų kalbų aikštelė.
Matome užuominų apie Python į jį.
Šis tipo apibrėžimas Atrodo, kad iš OCaml.
Ir mes turime tik visa krūva Daiktai iš daug skirtingų kalbų.
Štai vienas gražus dalykų apie Swift
yra tai, kad jis užima geriausias daug idėjos iš kalbų krūva
ir shoehorns juos visus kartu į vieną super kalbą.
Iš tiesų, jei leisite man toliau pučia savo mintis,
todėl mes darome visa tai.
Mes galime galbūt supaprastinti šį šiek tiek tiek realizuojant, kad, žinoma,
Swift turi exponentiating funkcija pastatytas.
Jei aš importuoti Darvinas, kuris yra tik biblioteka,
funkcijos Ši funkcija vadinama pow dabar Galiu supaprastinti savo galią funkcija
būti tokia.
Ji yra bus grįžta Tai anoniminė funkcija.
>> Bet pažiūrėkite, kaip paprasta tai dabar.
Tai yra anoniminis funkcija, yra priimti tam tikrą duomenų tipą,
ir tai bus vienas argumentai, konkrečiai,
nuoroda ne $ 0 tai tipo dvigubai.
Ji ketina grįžti tipo dvigubai.
Bet Grizimas dabar numanomi.
>> Ir tai yra tai, kad tiksli stilius yra labai, labai paplitę Swift,
visur.
Mes ketiname pamatyti šį visi Swift laikas.
Taigi rodau visa tai Jums dėl šio sintaksė.
Tai labai dažna matyti, tai reiškia, kad
yra anoniminis funkcija kad atlieka
kai šiais argumentais operacija.
Ir ten yra savaimingas grąža.
Taigi tai yra absoliučiai tas pats dalykas mums tai sakau, čia.
>> Kadangi šio Curly laikiklis yra funkcija,
mes atlikti šią operaciją pirmą argumentas.
Mes ketiname grįžti, kad.
Bet tai išorinis grąža yra grįžimas kad visą funkciją,
kad visa anoniminė funkcija kad mes ką tik sukūrėte.
Visi kiti klausimai?
Gerai, aš nežinau, jei Jūs vaikinai yra pasirengę už tai,
bet mes galime eiti net crazier su Swift.
Jūs pasiruošę?
Gerai, tai yra didelis.
>> Dabar mes iš tikrųjų turime galimybę kad, Swift, nes, kaip modulinė
ir kaip protokolas pagrindu, jis yra, apibrėžti mūsų pačių Freaking operatorius.
Pavyzdžiui, šiuo atveju, mes neturėjo operatorius exponentiation-- gerai,
atlikti įgaliojimus kažką.
Bet aš galiu, Swift, apibrėžti naujas veiklos vykdytojas, kuris daro būtent tai, kad.
Taigi šiuo atveju nėra iš sintaksės krūva čia.
Ir aš leis jums pažvelgti į jį namuose, kai jums pažvelgti į tai.
Bet mes Nustatant šį infix operatorius **, kuris bus leidžia mums,
apibrėžiant, kas tai funkcija ** iš tikrųjų
nėra, priimti kairę ranką pusėje ir dešinėje pusėje,
ir tada grįžti į šią eksponentų kairėje pusėje, kad dešinėje pusėje.
>> Ir todėl dabar visi staiga I sukūrė naują skaitiklį.
Taigi, 2 ** 3 reiškia 2 į trečiąjį galia.
[Tai pučia GARSO] Tai pagal pati turi padaryti jums bus kaip,
Gerai, varžtas C. Aš ruošiuosi Swift visą kelią.
Tai puiku.
Tai yra gana fantastiška.
>> Nors tai yra puikus pavyzdys.
Bet aš niekada kartą už Šio Pavyzdžiui tikrųjų
apibrėžta mano paties operatoriaus.
Bet vis tiek, tai rodo daug SWIFT galios
ir kodėl tai yra iš tikrųjų tikrai labai kietas.
Gerai, taip?
Auditorija: Jei esate apibrėžti savo operatorių,
kaip jūs žinote, jūs neturite netyčia pabandyti ir sukurti operatorių, kad yra
kažkur C, kaip paslėpta kažkur Swift,
kaip neaiškių vienas, kad jūs negali būti matęs.
>> DAN Armendariz: Taigi, jei jūs bandote apibrėžti savo veiklos vykdytojams,
ten yra apibrėžti rizikos vienas virš esamo operatoriaus.
Tai eina į detalumu, kuris Aš nemanau, kad mes turime laiko eiti per.
Bet, kad yra rizikos.
Ir tai yra iš tikrųjų labai priežastis, kodėl Aš ne naudoti Žymeklis simbolį, kuris
kai mes rašyti iš galios, mes paprastai naudoti 4 mažas žymekl 5 ar kažką
kaip kad, tik tada, kai mes Gchatting bičiuliai ar whatever.
Bet šiuo atveju, kad iš tikrųjų sukeltų susidūrimo.
Ir aš taip vengiama jį tik todėl, Teko žinoti šiuo atveju
kad būtų sukelti tą susidūrimo.
>> Gerai.
Dabar, deja, už paskutiniai septynias minutes,
Turiu išlaikyti pūtimo jūsų mintys truputį.
Taigi leiskite man parodyti jums kai kurie kiti daiktai, taip pat.
>> Mes parodė jums šią idėją turintys šių anoniminius funkcijas,
Šie uždarymo, kurios leidžia rūšies perduoti funkcijas aplink.
Galite grąžinti juos.
Jūs galite manipuliuoti jų.
Jūs galite tai padaryti visus crazy stuff rūšių.
>> Tačiau vienas kitas dalykas, kad atsitinka būti naudinga
yra gebėjimas, o ne grąžinant šias funkcijas
funkcija,, perduoti funkciją kaip parametras į kitą funkciją.
Jums gali būti mąstymas ir kodėl Žemėje aš noriu padaryti kažką panašaus?
>> Na, tarkim, kad aš noriu imtis šiam operatoriui, kad aš
dirbo taip sunku sukurti ir taikyti ji prie skirtingų numerių krūva
masyve.
Taigi, šiuo atveju aš turėti tai, masyvo integers-- 1, 4, 7, 2, 5, 10, 56.
Ir aš noriu padvigubinti juos visus.
Taip, kad mes būtume paprastai tai padaryti yra tiesiog parašykite
už kilpa paprasta, kad kartojasi per visą jų
ir atlikti kažkokia kvadratinių operacija virš jų,
įvedusi tuos naujas vertybes į naujas kintamasis, arba, tiksliau, naujas masyvas čia.
Ir produkcijos vertė rezultatas yra tada visi tie masyvai,
ar veikiau visus tuos elementai dabar kvadrato.
>> Ir mes galime padaryti tą patį dalykas cubing ją,
bet šiek tiek pavojaus varpas turėtų būti nenukryptų
sakydamas, kad gal ten tam tikru būdu, kad mes
būtų galima supaprastinti tai šiek tiek.
Ir iš tiesų yra.
Ką daryti, jei mes galime sukurti funkcija, kuri leidžia mums
priimti, kaip plėšrūnas, funkcijos?
Taigi, šiuo atveju, imtis pažvelgti į šių argumentų.
Mes ketiname priimti dviviečiai sąrašą.
Ir tada mes ketiname priimti funkciją
į kintamąjį vadinamas f, kad vyksta imtis DVIGUBAI ir grąžinti dvigubai.
Ir visa produkcija nuo visos šios funkcijos
vadinamas Mapper ketina grįžti masyvą vadinamas dvigubai.
>> Kas tai tada leiskite man padaryti, tai pakartoti per tą sąrašą
ir daryti tą patį, bet dabar taikyti šią funkciją kiekvienas
atskirų verčių tą sąrašą.
Taigi, aš tikrai nežino, ką f.
Nesvarbu man.
Tačiau tol, kol ji trunka dvigubai, atlieka tam tikrą operaciją apie tai,
ir tada grąžina Dvivietis, aš tada būtų
sugebėti map šią funkciją visoje kiekvienas elementas sąraše.
>> Ir tai programavimo tipas vadinami aukštesnės eilės funkcijos,
kur mes artimųjų funkcijas aplink, parametrų
ir daro dalykus funkcijas.
Tai tarsi atsižvelgiant į visus jų idėjos, kad mes sužinojome iš CS50
ir į juos rūšiuoti iš į kitą lygį.
Ir visa tai CS51 stilius dalykų.
Ir todėl mes eiti į gylį daugiau klasių, pavyzdžiui, kad.
>> Bet tai taip pat yra svarbu, nes čia mes
pamatyti daug funkcijų kad yra naudojami Swift
kad iš esmės nėra tai, kur mes turime
Kai kurie skaičiai, kai skaičių masyvo.
Mes ketiname perduoti, kad masyvas į mūsų mapper.
Ir mes taip pat ketiname praeiti šiek funkciją, kuri
mes jau apibrėžta čia.
Tai bus aikštėje.
Ir mes ketiname tada kvadratinių visų šių skaičių
ir laikyti, kad į šio rezultato čia.
>> Taigi šiuo atveju mes apibrėžti mūsų savo funkcija vadinama mapper.
Bet tai tiksli dalykas yra, Tiesą sakant, pastatytas į Swift.
Yra įvairių funkcijos vadinamas žemėlapis.
Yra žemėlapis funkcija, ten sumažinti funkciją,
ir ten filtro funkcija, kuris iš esmės taikomi funkcijas
į kiekvieną elementą į sąrašą pakeisti juos tam tikru būdu.
>> Auditorija: Taigi kadangi jūs transformuojant duomenis į kitą formatą
per function--
DAN Armendariz: Teisė.
Taip, taip, kad funkcija kad mes priimti
keičia tam tikru būdu duomenis.
Šiuo atveju, mes buvo arba suvedimas, arba mes cubing ją,
ar tikrai, mes galime atlikti ne apie tai operacija ne visiems.
>> Bet leiskite man parodyti jums, tada kaip tai ketina ieškoti praktikoje.
Ir vėl, Bėgu tiek laiko. todėl aš nesu
bus galima eiti per visus iš kodo čia išsamiai.
Tačiau raginu jus tai padaryti.
Mes post it kuo greičiau greičiau po šio pokalbio.
>> Bet jei pažvelgsime į tai, manyti, kad mes turime numerių sąrašą,
skaičių masyvą šiame kintamos vadinami numeriai.
Tada mes norime tai atlikti filtras operacija tų skaičių.
Taigi filtras yra didesnis Kad funkcija,
priima masyvą ir taip pat veiktų.
Ir kiekvienas, kad elementas masyvas, jis atlieka šią funkciją.
>> Jei ši funkcija grąžina tiesa, ji išlaiko tą elementą.
Jei ši funkcija grąžina false, tai išmeta tą elementą.
Ir tada jis grąžina sąrašą , kuri yra tada sudaro visi
tų objektų, kurie buvo filtruojamas.
>> Taigi, dar tariant, tai yra tą pačią idėją, The dienynams pildyti.
Mes gali turėti pažymių įvairovė į šią vertę vadinamas skaičių.
Gali būti 100, o 70, ir 40, taip toliau ir taip toliau.
Ką tai filtras daro, yra pranešimas , kad tai yra, kad Syntaktyczny cukraus
anoniminių funkcija.
Tai yra anoniminis funkcija sakydamas kad parametras, kad aš priimdamas
bus, jei ji yra didesnis nei 70,
tai grįš tiesa, tai reiškia, kad kad elementas bus laikomas šio filtru.
Taigi būkime šiek tiek konkretesni apie tai.
Jeigu aš turiu šį skaičių masyvą ir jis susideda iš 100, 70, 40, ir,
Aš atlikti šį filtrą operacija ant kiekvieno vienas iš tų.
Taigi, kad pirmasis tai 100 vertė.
100 didesnis negu arba lygus 70 Tiesa, kuri
tai reiškia, kad 100 yra laikomi Ši nauja kopija šiame masyve.
70 taip pat praeina.
Tačiau 40 nėra.
Taigi, kas yra grąžinami passingCount yra elementų 100 ir masyvo 70--
100, kablelis, 70.
Tai buvo tik du elementus, kurie buvo laikomi.
Ir taip priežastis, kodėl aš greitai išgyveno Dėl šių aukštos tvarka rūšies daug
viskas yra, nes tai, kad bendra dalykas, kad jūs pamatysite Swift gana
dažnai atlieka tam tikrą veiklą Naudojant šią anoniminę funkcija sintaksė.
>> Yra keletas įdomių dalykų.
Jungikliai yra tikrai galinga Swift, Aš turiu galvoje tik kaip crazy, crazy galingas.
Jūs galite naudoti jungiklį ir jūs iš tikrųjų galite juos taikyti
į intervalus, kurie yra natūra kvailai, ir tai išgalvotas stuff like that.
>> Tačiau per pastaruosius keletą minučių, Noriu praleisti į priekį gana toli
ir parodyti jums konkretų pavyzdį, kaip mes galime sukurti iOS app naudojant SWIFT.
Taigi, kai jūs darote tai, jūs turite imtis
a look at-- Apple dokumentus, jie
turi tikrai gerų samouczków daug kurti savo pirmąją paraišką.
Ir raginu jus padaryti kad, nes jie jus
per visus Kokių žingsnių tiksliai spauskite ant sukurti iOS taikymą.
>> Bet čia mes turime šį iOS app.
Ir tai yra gana paprasta programa tikrai.
Jei aš paleisti tai, leiskite man parodyti Jums, kaip jis atrodo.
Visa tai iš esmės daro tai išsitraukia iš interneto JSON failų
kad aš saugomi serveryje.
Ir tai JSON failą apibrėžia vaizdus, ​​kurie leidžia
man tada ciklas per, ant mano App, vaizdus iš savo žiniatinklio serveryje.
>> Taigi turiu čia getNextImage.
Jis įkelia paveikslėlį iš interneto, ir tada rodo jį ekrane.
>> Taigi, tai gana paprasta.
Bet tikslas čia yra parodyti jums, kaip mes galime sujungti dalykų
nuo pastarųjų kelių savaičių CS50 į faktinį iOS taikymo.
Kitaip tariant, galbūt vienas iš dalykų, kad jūs norite daryti
yra turėti iOS programą, gali traukti duomenis iš interneto
ir parodyti vartotojui tam tikrą informaciją.
Tai yra visiškai taškas Šio kodo čia.
>> Taigi ten daug galima pasakyti apie kaip padaryti realią iOS plėtrą.
Yra crazy sintaksė daug kad mes nematėme gana dar
kaip klasės, ką klasė tikrųjų yra.
Mes daugiausia gali ignoruoti kad šiuo metu viduryje.
>> Tačiau pastebite, kad mes esančius per tai daug dalykų įvairovė
kad mes jau matėme, kaip funkcijos, kurios turi specialius pavadinimus.
Ir kai mes suteikiame tiems veikia teisingus pavadinimus
kad tikimasi, kad iki iOS, iš tikrųjų Tai jaučiasi šiek tiek magiška.
Bet kai jūs sukuriate "iOS programa, ten
yra specifinė funkcija pavadinimai, vadinami pats telefonas
Kadangi ieškinys yra pakrovimo pabandyti sukurti procesą, kad iš tikrųjų
veikia jūsų paraišką.
Taigi dar kartą, ten daug dalykų, kad aš turi Koloryzować čia tam, kad mus
apie tai kalbėti konkrečiau.
Tačiau raginu jus pažvelgti į galbūt kitas iOS seminaras, bet taip pat kai
samouczków internete, kuri padaryti daug geriau apibūdinti
konkrečią informaciją.
>> Bet mes galime pamatyti keletą dalykų, kad įdomūs kodas čia.
Atkreipkite dėmesį, kad mes turime, jei ataskaitose.
Beje, vienas svarbus dalykas, apie if
yra tai, kad aplink skliausteliuose Bulio logikos išraiška yra neprivalomas.
Bet garbanotas petnešos nėra privaloma, nesvarbu, kaip mažai, ar daug eilučių kodo
turite if.
Jūs negalite turėti, jei ataskaitose be klamrami Swift.
>> Ir tai yra gerai, tarsi kvailas.
Tačiau yra istorinių priežasčių, kad.
Tai turėtų išgelbėti jus nuo savęs.
Kaip tai Pavyzdžiui, jūs negalite pašalinti vingiuotus skliaustus aplink, kad
jei pareiškimas.
Tie, kurie iš tiesų reikia.
Taigi raginu jus Pažvelkite į šį išvaizdą.
Bet yra dar vienas statyti, kad aš noriu
parodyti jums apie Swift, kad yra nauja Swift 2.0 palyginti
kad senesnės versijos Swift, kuri yra tokia.
Pažiūrėkime, kur aš įdėti jį čia?
>> Taigi šią funkciją vadinama fetchJSON, ši funkcija
yra atsakingas už traukimo, kad JSON failą iš URL, kuris tiesiog taip atsitinka,
būti paleistas ant mano CS50 IDE.
Aš ką tik pradėjo Apache, įdėti mano JSON failą ten,
ir aš galėtų tada patraukite, kad duomenis iš interneto, naudojant
Ši funkcija ir tai URL , kuri pateikiama telefonu.
Tai, kurias teikia Biblioteka, kad jūs naudojate, kai
darote kai iOS app plėtra.
>> Atkreipkite dėmesį, kad čia yra šis neįprastas sintaksinis konstruktas vadinama apsauga.
Ir tikrai visa tai yra SWIFT yra patikrinti būdas
kad kai kurie dalykai turi buvo įvykdyti prieš jus
toliau su funkcija poilsio.
Taigi, aš gali turėti, naudojant Šis pasirenkamas tipas,
Galėčiau rasiu pagal URL naudojant šią funkciją NSURL
ir saugoti, kad į URL pastovus, ir, antra, patikrinant
pamatyti, jei adresas buvo nulinė, nes tai ketino grįžti neprivaloma tipą.
Ir jei ji buvo nulinė, tada aš spausdinti klaidą ir tada grįžti.
>> Bet vietoj to, ką Guard leidžia mums daryti tai, kad labai dalykas,
bet ir užtikrinti, kad jis yra iš tikrųjų tas atvejis, kad URL
buvo tinkamai nustatyti NSURL.
Ir, jei jis yra, jis praleidžia daugiau nei tai, ir tai
leis jums pradėti su URL buvo deramai apibrėžti.
Bet jei jis yra tas atvejis, kad URL nėra tinkamai apibrėžtos,
Jei ši funkcija grąžina klaidos arba kai kitas netikėtas dalykas
iš tikrųjų atsitinka, šį apsauginį konstruktą leidžia mums tada produkcija šią klaidą
ir grąžinti nedelsiant.
Taip?
>> Auditorija: Taigi tai tipo apie tarsi jei tada dar?
DAN Armendariz: Tai tipo kaip jei tada kitur, taip,
išskyrus tai, kad šis URL, tada apibrėžta už viską žemiau tai.
Jei jis eina šį apsauga, tada jį iš tikrųjų bus pripildytas duomenis
ir tinkami naudoti likusi kodo į savo funkciją.
Taigi, aš įtariu, kad jūs ketinate pradėti žiūrėt apsauga taip pat.
Ir nepamiršti, kad.
>> Taigi tiesiog žiūri į kitą porą dalykų, tai čia yra tai, ką,
manai, tiesiog remiasi tuo, ką mes kalbame apie anksčiau?
>> Auditorija: manau, kad tai bus paleisti į sąrašą?
>> DAN Armendariz: Taigi, kad yra arti.
Tai yra funkcija, kad mes apibrėžti.
Ir mes įvedusi šią funkciją kaip su šia funkcija čia argumentas.
>> Auditorija: [nesigirdi] jei ne nulinis.
Taigi, tai į sąrašą, tiesa?
>> DAN Armendariz: Jei klaida nėra lygus nuliui, kad is-- todėl turiu slinkti.
Na, pažiūrėkime, aš tikrai negali pereikite į dešinę čia.
klaidos yra argumentas, kad yra atliekamas išlaikė šią anoniminę funkcija.
Tai yra anoniminis funkcija.
Jis neturi vardo.
Bet mes priimame šias tris argumentai, duomenų, atsako, ir klaidų.
Ir ji ketina grįžti negaliojančiu, todėl jis nesiruošia grįžti nieko.
Ir tai yra turinys tos funkcija.
Ir tada mes turime prieigą viduje, kad funkcija kiekviena iš šių argumentų.
>> Taigi tai viesulas kelionė kalba.
Bet aš tikiuosi, kad su tuo, tikiuosi, kaip jums imtis
į kai vadovėliai žvilgsnis būdingi iOS plėtros su Swift,
ypač jei jūs einate į "Apple" kūrėjas Web page--
jie turi tikrai daug gero samouczków padės jums pradėti.
Bet tikiuosi tik tai kalbėti valandų apie sintaksę pati davė
Jums užtenka pradėti su tuo.
>> Mes paskelbsime visus šio šaltinio kodas ant seminaro svetainėje
kaip galima greičiau, o taip pat skaidres todėl jūs turite už visus tuos nuorodą.
Bet Sėkmės jūsų projektus.
Ir ačiū visiems labai už atėjimą.
>> [Plojimai]