>> [Daqq tal-mużika]
>> DAN AMRMENDARIZ: Kulħadd, merħba lill-seminar CS50,
IOS App Iżvilupp ma Swift.
Jien Dan Armendáriz, u jien preceptor tax-xjenza tal-kompjuter hawn fil-Harvard.
>> U l-siegħa li jmiss se tkun tour whirlwind ta 'għalf kemm
dwar dan is-suġġett kif aħna jistgħu joqogħdu.
I ser post kollha ta 'l-source code li se tara illum online.
Aħna jistgħu ma jkunux kapaċi li fil-fatt imorru fuq kollox
li jien li jien turi li inti f'din siegħa.
Imma l-anqas nisperaw permezz l-kummenti tal-kodiċi sors,
inti ser tkun tista 'tipprova ċifra barra dak eżattament jiġri għal dawk l-affarijiet
li aħna ma pjuttost issiru.
>> B'mod ġenerali, l-istruttura ta ' talk lum se tkun kif ġej.
Aħna ser tibda tagħmel xi bażika sintassi mal-lingwa Swift,
nidħlu xi wħud mill-aktar avvanzati sintassi tal-lingwa Swift.
Minħabba li l-lingwa huwa verament moderna u
għandha ħafna ta 'livell għoli karatteristiċi, affarijiet li għandna ma
jidher fil C matul CS50, jew Anke uħud mil-lingwi l-oħra
li konna beda użu fil CS50 bħal PHP,
so I am ser ikollhom jippruvaw jintroduċu wkoll xi suġġetti li
huma relatati ma 'lingwi ta' livell ogħla li inti ma tistax tara fil-fond fil CS50,
imma se tara fil aktar tard klassijiet tax-xjenza tal-kompjuter.
Allura li għaddej biex tkun sewwa siegħa ippakkjat.
U jekk jogħġbok tħossok liberu li let me taf jekk għandek xi mistoqsijiet.
Mela jekk int interessat meta jagħmlu iżvilupp
ma Swift, jew verament kwalunkwe żvilupp app IOS,
hemm koppja ta 'rekwiżiti.
L-ewwelnett, inti għandek tkun tuża Mac, tmexxija fl-eżempji
li aħna se tkun qed tuża llum, verżjoni relattivament ġdida ta 'OS
X. F'dan il-każ, niġri X 10.5.
Inti tista 'tkun qed taħdem 10.11 jekk inti tixtieq.
Imma dak kollu li int ser tara qed jinvolvi Xcode 7 u wara,
li għandu l-aħħar verżjoni tal Swift, li huwa Swift 2.0.
Dan huwa attwalment pretty distinzjoni importanti.
A lott ta 'l-sintassi għandha inbidlu b'mod sinifikanti pretty
f'xi każijiet minn Swift 1.0, li kien rilaxxat aħħar sena,
li Swift 2.0, li biss ħareġ dan it-tnaqqis.
Allura aħna qed tmur biex juru Swift 2.0.
A lott ta 'l-affarijiet li inti tfittex għall-onlajn
meta inti qed tipprova tikseb addizzjonali informazzjoni dwar varjetà ta 'affarijiet,
inti tista 'tixtieq li espliċitament tfittxija għal Swift 2
aktar milli Swift biss sempliċi qodma li jagħmlu żgur li tikseb l-sintassi korretta.
>> Fil-fatt, dan huwa veru b'mod ġenerali.
Hemm ammont rapidu ta 'żvilupp jiġri fil-lingwa Swift
qatt peress Apple rilaxxati lilha, I think dak, huwa kien ftit iktar minn sena
issa.
U affarijiet inbidlu drammatiku f'dak iż-żmien.
U sabiex ma jkun frustrat jekk, meta inti qed tfittex madwar
għal suġġetti fuq Swift jew kif twettaq xi ħaġa li jużaw xi kodiċi eżempju
jew xi ħaġa li ma attwalment jaħdmu fuq Swift 2.0.
Kun żgur li int qed tfittex speċifikament għal dik il-verżjoni
biex jippruvaw jimminimizzaw effetti ta 'differenti Verżjonijiet u dawn it-tipi ta 'affarijiet.
>> I ser jippruvaw li jiġi rrilevat biss xi affarijiet li huma differenti minn verżjonijiet anzjani.
Imma hija xi ħaġa li toqgħod attent għalihom.
Li probabbilment se tkun wieħed mill-ras akbar
li inti ser ikollok ma 'Swift huwa konstatazzjoni Eżempju kodiċi li huwa anzjani, anki sempliċement
bi ftit xhur, jippruvaw jużaw fil-proġett tiegħek aktar moderni.
U hija biss sempliċement ma taħdimx.
Int jkollna żbalji kompilatur, sintassi żbalji, kull xorta ta 'għalf crazy.
Hekk biss tkun pazjent ma li, u int se nisperaw
jkollhom esperjenza pretty sbieħ ma globali Swift.
>> Issa inti tista 'attwalment join-- u nispera għandna attwalment xorta jkollhom dan dan year--
Apple app CS 50 ta tim ta 'żvilupp, li
se jippermetti li inti twaħħal kwalunkwe apps li inti toħloq fuq apparat IOS tiegħek.
Allura tagħti ħarsa lejn dan il-URL jekk inti interessat li jagħmlu dan.
>> Hekk biss ftit affarijiet dwar Swift innifsu.
Hija lingwa ikkumpilata.
Imma se tara li xi mill-karatteristiċi li nużaw
jippermettu li din tkun użata wkoll daqsxejn bħal interpretat b'mod ukoll.
>> A lott ta 'l-sintassi hija mislufa minn C. Huwa bbażat u miktub C.
U hekk aħna se tara li hemm ħafna ta 'takeaways
mill-għarfien eżistenti tiegħek minn C li nistgħu port li Swift.
>> Iżda hemm affarijiet li jagħmilha differenti ħafna minn C.
Huwa ittajpjat b'mod qawwi ħafna.
Hemm ġestjoni memorja awtomatiku.
Int mhux se jkollhom użu malloc jew kullimkien b'xejn.
Hija maħsuba għall-ġeneralità.
Allura fi kliem ieħor, inti tista 'tuża fil kull xorta ta 'kuntesti, minn Apple Watch
li iPhone it-triq kollha sa l-OS X, u anki xi servers, anki xi scripting.
Iżda aħna ser tara li l- appoġġ għall-kitba
mhux daqshekk wasalniex bħala huwa f'lingwi oħra.
Allura l-aktar probabbli inti ser tkun qed tuża dan esklussivament għall-iżvilupp
fuq Mac tiegħek jew iPhone tiegħek.
>> U għandu ħafna karatteristiċi moderna.
U ħafna dawn l-affarijiet huma għalf li aħna qed tmur biex tipprova tindirizza llum,
iżda wkoll suġġetti tagħna li franchement, nistgħu jiddedikaw korsijiet kollha.
Fil-fatt, CS 51, li hija offruti semestru li jmiss,
jiffoka ħafna fuq dawn is-suġġetti li huma deskritti hawn taħt.
Allura inti tista 'tonfoq semestru kollu ftehim ta 'dawn l-affarijiet.
Iżda aħna qed tmur biex tipprova biex tikseb permezz tagħhom
mill-inqas biżżejjed li inti jista 'jifhem x'hemm
għaddej meta inti tħares fi programm Swift
u tkun tista 'Hack tiegħek mod permezz ta 'dan għall-proġett finali.
>> Issa wieħed mill-aħjar modi li inti tista ' tinkiseb informazzjoni addizzjonali dwar dan
huwa franchement biss permezz Apple provduta dokumentazzjoni għall Swift.
Hemm ħafna ta 'APIs li huma disponibbli.
U dan huwa bażi ta 'residenza tajba għalik biex tfittex, affarijiet speċifiċi li inti
trid tagħmel ma 'API tinvolvi IOS.
Jekk inti tixtieq li tuża l-kamera għall eżempju, inti tista 'tibda tfittex hawn,
u wkoll jużaw Google u munzell Overflow kif inti normalment.
>> Kwalunkwe mistoqsijiet dwar dan qabel we jaqbżu dritt?
Kull dritt.
Ejja jimxu fuq.
>> Allura l-ewwel, I jkollhom Numru ta 'eżempju fajls.
U jien ser jippruvaw pass permezz tagħhom relattivament malajr.
Dan huwa l-fajl Hello World għall Swift.
Huwa sempliċi ħafna.
Hemm mod aktar kummenti minn hemm kodiċi attwali.
Avviż tal-kodiċi attwali huwa fil -qiegħ nett fuq il-linja 14.
Hija tgħid print.
U allura huwa sejħa funzjoni.
Aħna qed tgħaddi ġol hu string imsejjaħ CS50 Hello.
Avviż li hemm l-ebda semicolons.
Avviż li hemm l-ebda ewlenija int.
Hemm l-ebda cruft li kellna ma 'C.
Meta aħna qed jużaw Swift b'dan il-mod, li huwa biss miktuba fil-fajl test
u maħżuna fuq il-kompjuter tiegħi, imbagħad I tista josservawha u run.
>> Avviż li hawn jien ma jużawx l-IDE CS50.
Dan jassumi li jiena tmexxija u li jien fuq OS X,
u li jien Xcode diġà installat fuq din il-magna sabiex dan
li attwalment funzjoni.
Iżda din hija biss test fajl normali li nistgħu mbagħad tiġbor u jeditjaw.
Mela ejja ara kif dan attwalment xogħlijiet.
X'jiġri jekk I tixtieq li josservawha?
1.swift swiftc.
Wara mument jew tnejn, huwa se tara li għandna issa
ikkumpilata dan fi fajl imsejjaħ 1.
U issa għandna stampati CS50 tagħna, applikazzjoni tagħna Hello World pjuttost.
>> Avviż ħaġa waħda oħra bħala tajjeb huwa li awtomatikament,
aħna ma kellhomx input a / n li jistampaw linja ġdida.
Konvenzjonalment, l-funzjoni tal-istampar fil Swift se print linja ġdida għalik.
Inti tista 'tgħaddi addizzjonali fakultattiv parametru li tgħid li ma jagħmlux hekk.
Iżda Google għal aktar informazzjoni fuq dan.
Permezz ta 'default, hija se tagħmel il-linja istampar.
>> Kull dritt, so ejja jimxu fuq imbagħad xi affarijiet oħra.
Allura kif nistgħu attwalment tiddefinixxi varjabbli?
Nistgħu nagħmlu dan huwa użu wieħed miż-żewġ metodi.
U l-wieħed li nixtieq li jgħidlek dwar l-ewwel hija din id-definizzjoni let.
U dan huwa importanti minħabba effettiv
dak li aħna qed tagħmel huwa li tiddefinixxi kostanti.
Aħna ser joħolqu varjabbli, jew pjuttost imsejħa isem kostanti,
jipprovdu għaliha xi data-- fil F'dan il-każ, l-sekwenza Dan.
Iżda billi tuża din let keyword, aħna qed jgħidu
li din variable-- jew għal darb'oħra constant-- imsejħa
isem huwa qatt se jinbidlu.
Huwa ser tkun immutabbli matul it-tul ta 'dan il-programm
jew matul il- tul tal-kuntest
li dak il-varjabbli hija disponibbli.
>> Dan huwa verament importanti li meta ikollok xi data li mhix
se jibdlu fil-programm tiegħek, u tkun taf tara varjetà ta 'eżempji
dwar meta irridu li jużaw let kontra l-sintassi oħra,
huwa importanti li inti tuża let kull meta jkun possibbli minħabba li dan tgħarraf
il-lingwa li huwa mhux se jinbidlu,
u din tista 'attwalment twettaq ħafna ta 'optimizations
biex itejbu l-veloċità u is-sigurtà tal-programm tiegħek.
U mill sikurezza, I tfisser Tħallix dan tiġrifa bi żbalji crazy
li aħna jista 'jkun mdorri jara fil C.
>> Imbagħad nistgħu nużaw interpolazzjoni string li jirrappreżentaw din fi string.
Allura nistgħu naraw f'dan linja istampar, istampar hello,
u mbagħad tuża backslash parens miftuħa, u allura l-isem ta 'varjabbli tiegħi,
f'dan il-każ kostanti, tagħlaq il-parentesi.
Jien essenzjalment allura tqegħid tal- kontenut ta 'dan il-varjabbli imsejħa isem
ġewwa tas-sekwenza u mbagħad istampar ir-riżultat hemmhekk.
>> Hemm bidla ieħor għal dan il-fajl li huwa li għandi, fil-quċċata ħafna,
jitqiegħdu fil-linja shebang, li bażikament biss jispeċifika
li nixtieq li jużaw il- Interpretu Swift, li
ifisser li jien m'għadx għandhom jiġbor dan il-programm partikolari.
I tista 'biss run bħal iskrittura tagħha stess.
Iżda dan huwa, f'dan il-każ, wara l-kwinti tkun miġbura u mbagħad
qed titmexxa.
Huwa biss inviżibbli lilna.
>> Kull dritt, so ejja jimxu fuq.
Allura hemm daqsxejn ta 'trickery li ġara biss qabel.
I wera inti li jien jistgħu jiddefinixxu kostanti.
UI jista 'jipprovdi xi data biex tagħmel dan.
Iżda f'dan il-każ, l-avviż li jien ma attwalment jispeċifikaw it-tip ta 'data
li huwa.
U dan għaliex l- kompilatur, Swift jista
jiddeduċu it-tip ta 'data biss ibbażat fuq id-data li I jitqiegħed fis dan.
Għaliex taf li billi jevalwa din varjabbli dritt hawn, dan id-dritt data
hawn, huwa jaf li huwa string.
U hekk dan l-isem kostanti huwa għalhekk se tkun string kif ukoll.
>> Iżda aħna tista 'wkoll tkun espliċita dwar it-tip li l-
aħna ser tuża għall kostanti jew varjabbli
billi tuża din sintassi instead-- let String isem kolon ugwali
Dan, li f'dan il-każ ifisser li aħna qed ser jiddefinixxu imsejħa isem kostanti.
Li għaddej biex tkun tat String tip.
U l-valur se tkun Dan.
Issa l-mod ieħor li nistgħu noħolqu variables--
u dawn huma varjabbli mutable, li ifisser li aħna, fil-fatt, tmur
li jibdlu l-kontenut tagħhom f'xi fid-dewmien tal-kuntest
li dak il-varjabbli hija defined-- aħna tuża l-keyword var minflok let.
Iżda għal darb'oħra, awtomatikament, sakemm inti taf li għandek bżonn biex jimmanipulaw li d-data,
jippruvaw jużaw let għall titjib fil-prestazzjoni.
>> F'dan il-każ, I jistgħu mbagħad jispeċifikaw it-tip ta 'data
li nistennew li jkun ġewwa ta dan il-varjabbli ġdida msejħa tikketta.
Huwa ser tkun string.
U aħna qed tmur biex imbagħad concatenate żewġ kordi flimkien,-sekwenza hello,
u l-sekwenza rappreżentata mill- varjabbli, jew pjuttost l-isem kostanti.
>> Allura dan huwa sbieħ għaliex din huwa kemmxejn PHP bħal li aħna
jkollhom konkatenazzjoni sekwenza faċli ħafna.
Aħna ma jkollhom awtomatikament tuża kwalunkwe tip ta 'ġestjoni tal-memorja
li jiżdied id-daqs u jagħmlu kwalunkwe tip ta 'affarijiet umoristiċi hemmhekk.
Dan jaħdem kif aħna fil-fatt jistennew.
>> Dritt kollox, xi mistoqsijiet dwar dan?
>> Issa l-raġuni oħra li għandna bżonn li inti għandek il-ħila
biex ikunu jistgħu jiddefinixxu dak tip ta 'varjabbli tad-data huma
huwa għaliex kultant aħna ma tixtieq li initialize varjabbli
ma 'xi data fil- punt ta 'definizzjoni.
Allura f'dan il-każ, ejja ngħidu li nixtieq li jibdew inputjar
xi gradi ġo ktieb grad.
Well I know li wieħed mill- varjabbli li nixtieq li jkun
se tkun grad mutable.
U aħna nafu wkoll li aħna jixtiequ li din tkun numru sħiħ.
Imma forsi aħna ma għadhom jkollhom dak il-grad disponibbli.
>> Fil Swift, inti għandek jiddefinixxu t-tip ta 'data
li huwa assoċjat ma ' varjabbli jew kostanti let
Qabel ma inti tista 'attwalment jużaw dik varjabbli.
Minħabba li hu ittajpjat b'mod qawwi, inti għandek tiġi assoċjata ma 'tip
ma dawn il-varjabbli.
>> Allura f'dan il-każ, jekk stajt weriex kif inhu xieraq initialized l-ewwel ma 'xi valur,
imbagħad I trid tghid Swift dak Nistenna dejta tat-tip li jkun.
U li għaddej biex jibqgħu dik l-istess tip ta 'dejta
matul l-istorja ta 'dan il-programm.
>> Issa inti jista 'jitħajjar aktar fis I ħolqu dan il-varjabbli ta 'grad
u sakemm l numru sħiħ ta '100, issa jekk I
jridu jippruvaw li concatenate string ma 'dak numru sħiħ,
jista 'jitħajjar għadhom jużaw dak l-operatur konkatenazzjoni sekwenza
bħal għamilna biss ftit linji qabel.
Iżda sfortunatament, dan se attwalment mhux
xogħol, għax inti essenzjalment jwettqu
operazzjoni fuq żewġ tipi differenti.
>> Issa dan huwa differenti ħafna minn xulxin lingwi bħal PHP li huma verament
goosey loosey ma tip tagħhom ta 'tipi.
Huma qed biss simili, yeah, tkun xi tkun, I do not care.
Just tagħti me tip wieħed, u forsi I ser tagħmel l-aħjar ħaġa.
>> F'dan il-każ, Swift huwa estremament stretta dwar it-tipi
li inti qed jittrattaw.
Dan l-operatur għadd totali jew operatur konkatenazzjoni
għandha essenzjalment koppja ta ' għażliet possibbli differenti.
Tista 'tagħmel għadd totali ma interi, jew inti
tista 'tagħmel konkatenazzjoni sekwenza, u forsi xi affarijiet oħrajn ukoll.
Iżda jekk dak l-operatur ma tirrikonoxxix x'hemm fuq kull naħa ta 'dan,
jew pjuttost il-kombinazzjoni ta 'dawk żewġ tipi, mhuwiex dak huwa jistennew,
allura huwa għaddej biex jikkawża ħsara.
>> Allura f'dan il-każ, xi jfisser li jkollhom string flimkien ma 'numru sħiħ?
Ukoll fil-kuntest ta ' dan, aħna probabilment jridu
tagħmel operazzjoni konkatenazzjoni sekwenza.
Iżda naturalment il-kompjuter ma jkollux dik it-tip ta 'kuntest.
U għalhekk għandna bżonn li jipprovdu dik l-informazzjoni addizzjonali
biex jgħarrfu dak li hija li rridu nagħmlu.
>> Allura fi kliem ieħor, il-fatt li Swift hu ittajpjat b'mod qawwi
ifisser li inti għandek tagħmel ftit ta 'xogħol addizzjonali
biex tiksbu biex jopera l- mod li inti tixtieq.
Iżda bħala riżultat, huwa aktar sikur.
U ladarba inti għandek tieħu li tqiesu dawk it-tipi,
affarijiet biss franchement jibdew biex jaħdmu pretty ukoll.
>> Allura f'dan il-każ, aħna mbagħad se iwettqu konkatenazzjoni sekwenza
mill-ikkastjar espliċitu n-numru sħiħ li string
billi tgeżwir f'dan kapital S String funzjoni,
u mbagħad tuża l-konkatenazzjoni sekwenza operatur li jimmodifika varjabbli tikketta tagħna,
u mbagħad print out.
>> S'issa, hekk tajjeb?
Kull dritt, ejja jimxu fuq.
>> Issa hemm varjetà ta 'data tipi li nistgħu nużaw fil Swift.
Kif inti jkollhom jidraw, nistgħu noħolqu firxa mutable.
U li firxa tista 'biss fihom tip wieħed.
>> Allura f'dan il-każ, aħna qed tmur biex joħolqu a arrays mutable tan-numri interi, li
aħna se sejħa gradi, u se nkunu kapaċi li jaħżen li f'dan bracket kwadru
format kif inti ħadthom imkabbra mdorri li fil-varjetà ta 'lingwi oħra.
Iżda avviż li hawn aħna qed tiddefinixxi ftit affarijiet.
gradi hija variable-- mutable aħna ma tuża l-keyword let.
Allura dan ifisser li nistgħu mbagħad timmodifika il-kontenut ta 'din array.
Huwa ta 'Int Array tip, u aħna tista 'tgħid li
ibbażati fuq dawn parentesi kwadri hawn.
>> Issa waħda mill-affarijiet sbieħ dwar dan hija li aħna
ikollhom aċċess għal lott ta ' informazzjoni addizzjonali
dwar il-firxa biss bl-użu xi sempliċi dot notazzjoni.
Hekk per eżempju, grades.count jipprovdi lilna
in-numru ta 'oġġetti li jeżistu f'dak array, li aħna mbagħad tista 'aċċess pretty
faċilment sempliċement jużaw dan dot notazzjoni.
>> Jekk tixtieq iżżid addizzjonali oġġetti għal dan array,
inti ma tistax tagħmel l-istil PHP fejn inti biss jiddefinixxu b'mod espliċitu,
fi indiċi speċifika, xi valur li inti tixtieq li daħħal.
Minflok, uża l-tehmeż Metodu fit-tip array
li tehmeż dik il-partita, 95, din il-lista.
>> Allura issa dan array għandha dawn li ġejjin contents-- 100, 0, 90, 85.
U issa konna mehmuża 95 għal dak ukoll.
>> Hemm modi oħra nistgħu tehmeż affarijiet.
Inti tista 'attwalment tuża operatur kalkolu totali,
li se jiġu interpretati bħala operazzjoni tehmeż firxa.
U inti tista 'mbagħad tehmeż ieħor firxa, li l-kontenut huma 70 u 80,
għal dak array.
Allura issa għandna l- kontenut f'dan il-varjabbli
grades-- 100, 0, 90, 85, 95, 70, u 80.
Dan huwa biss sintattika ftit sbieħ zokkor li Swift jipprovdi lilna.
>> Mela jekk irridu li l-qosor gradi, aħna qed forsi
tmur jridu jtenni fuq kull oġġett f'dan loop.
U aħna do jkollhom, fil Swift, il-kunċett ta 'għall loop kif tista' tistenna.
Iżda l-mod li aħna jindikaw firxa hija kemmxejn differenti.
Allura f'dan il-każ, li Fil-qosor dak kollu, aħna ser
se toħloq temporanju imsejħa somma varjabbli sabiex għalina
li żżomm din l-għadd.
>> U avviż għall tagħna kostruzzjoni loop hawn.
Għal indiċi 0 .. <grade.count.
Allura din il-kostruzzjoni, 0 .. <grades.count hija operazzjoni firxa fejn ninsabu
qal li aħna qed tmur biex joħolqu firxa ta 'numri interi minn 0 sa
imma eskluż grades.count.
Allura dan se jkun 0, 1, 2, 3, 4, 5, sal iżda ħafna wieħed
qabel grades.count.
>> Allura dan huwa differenti minn kif aħna tipikament jintużaw għal linji
fejn inti jkollha xi indiċi varjabbli, tistabbilixxi li egwali għal 0 fl-ewwel,
u mbagħad jintegraw li sa ċertu valur inqas mill-għadd ta 'oġġetti
f'dak array.
>> Allura hemm modifika għal dan, fil-fatt,
li jippermetti li faċilment stabbiliti tipi differenti ta 'firxiet.
Jekk tibdel din il-firxa li tliet tikek, 0 ... grade.count,
dan jirrappreżenta range ta '0 li grades.count inklużi,
li jfisser li dak in-numru huwa wkoll imbagħad inklużi f'dik il-firxa.
>> Iżda din hija ferm handy għal dawn l-affarijiet eżatta,
meta jkollna biex iwettqu iterazzjonijiet fuq loop
minħabba li dawk indiċi huma żero indiċjati, kif rajna f'lingwi oħra
kif ukoll.
Kwalunkwe mistoqsijiet dwar dan għal loop?
>> Allura hemm definizzjoni impliċitu ta 'dan il-varjabbli indiċi,
valur li jibda 0, u tkompli f'kull iterazzjoni loop
biex tiżdied b'1 sa punt li huwa ugwali għal grades.count,
f'liema punt, il-linja aborts.
>> Avviż li fil string tagħna Interpolazzjoni hawn,
nistgħu ngħidu jwettqu xi sempliċi manipulazzjonijiet għal dawk il-valuri.
Allura indiċi flimkien ma '1 fil-fatt se iwettqu kalkolu totali ta 'dak il-valur
minħabba indiċi huwa, fil F'dan il-każ, integer.
U f'dak il-punt, se mbagħad jiġi konvertit fi string
u interpolat fis din is-sekwenza hawn, u stampata kif nistgħu nistennew. .
>> U l-ħaġa sbieħ dwar il-arrays hawnhekk hija
li aħna wkoll kapaċi li jkollhom Valuri fetching u l-valuri li jistabbilixxu
bl-użu notazzjoni parentesi kwadri kif Rajna f'lingwi oħra kif ukoll.
>> Kull dritt, hekk minn hawn, aħna issa kkalkulata somma tagħna ta 'kollha ta' gradi tagħna.
Issa tip tal-li jmiss pass loġiku ikun
tagħmel operazzjoni diviżjoni li ssib l-medja ta 'dawn il-gradi.
Imma xi ħaġa importanti hawn qed jiġri li
hija li din is-somma hija forsi integer.
Iżda għandna bżonn sabiex iwettaq xi tip ta 'diviżjoni doppja.
U dan se jkun importanti ferm meta
irridu li jwettaq din l-operazzjoni, għaliex dak li aħna qed jgħidu
hija li għandna bżonn li fil-fatt twettaq diviżjoni fuq żewġ jirdoppja.
U għal darb'oħra, għaliex Swift hu ittajpjat b'mod qawwi ħafna,
irridu lesta espliċitament kollha tal- oġġetti li jirdoppja qabel we attwalment
iwettqu dik l-operazzjoni.
>> Allura sabiex għalina biex iwettqu diviżjoni doppja,
mhuwiex biżżejjed għal wieħed biss ta 'dawk l-oġġetti li jkun doppju.
Kemm minnhom għandhom ikunu ta ' double sabiex rapidu
li jiġi żgurat li din huwa dak li rridu nagħmlu.
Allura aħna mbagħad se typecast espliċitu is-somma li konna tinħadem hawn fuq
u l-għadd ta 'gradi għall jirdoppja, u mbagħad iwettqu dik l-operazzjoni u jaħżnu
li f'din il-varjabbli ġdida, jew pjuttost din il-kostanti ġdida msejħa medja,
li se jkollhom dak it-tip, timmaġina?
Double, yeah.
Allura f'dan il-każ, aħna ma għandekx jispeċifika dan
minħabba li jista 'jiġi dedott mill- operazzjoni liema tip ta 'medja tad-data
se jkun.
U Swift huwa ġeneralment pjuttost tajba dwar il-kapaċità li wieħed jiddeduċi t-tipi.
>> Do inti tixtieq li tara dan run, jew nista jimxu fuq?
Irrid li jibqgħu għaddejjin.
Kwalunkwe mistoqsijiet dwar xi parti minn din?
Great.
>> Issa aħna qed tmur biex tibda tikseb sa il-funzjonijiet tajba jiddefinixxu stuff--,
u l-koppja ta 'tipi oħrajn li huma unika biex Swift li int ma
dehru f'lingwi oħra sa dan il-punt,
iżda dawn ikunu preżenti fid-oħra lingwi li inti tista 'ssib aktar tard.
Allura l-ewwel jekk inti tixtieq li tiddefinixxi funzjoni,
inti tiddefinixxi bl-kelma funky funzjoni, u mbagħad l-isem funzjoni,
u mbagħad fil-parentesi, l-argumenti li inti tixtieq li l-funzjoni li jaċċetta.
L-argumenti għandhom ukoll specify-- generally--
għandu wkoll jispeċifika t-tip ta 'data li huma, sakemm ma jkunux jistgħu jiġu dedotti.
U aħna ser tara li ftit twiddiba biss ftit.
>> Allura f'dan il-każ għandna funzjoni msejħa printGradeCount.
Aħna qed tmur biex jaċċettaw variable-- jew pjuttost f'dan il-każ,
a constant-- imsejħa gradebook.
U se tkun ta ' tip firxa ta 'numri interi.
Issa hemm xi ħaġa li tassew importanti hawnhekk
li nixtieq li inti tifhem.
Dan huwa li fil-kontumaċja, dawn l-argumenti li huma inputs għal din il-funzjoni huma
definita bi keyword let impliċitu, li jfisser li ma nistax timmodifika din
varjabbli gradebook hawn.
U dik it-tip ta 'jagħmel sens, għax int tgħaddi data fil.
U inti forsi ma jriduhom li jinbidlu minn taħt inti.
Huwa possibbli li jsemmu espliċitament li din hija varjabbli billi
l-keyword var hawn.
Iżda dan huwa gotcha li konna nies ndunat għamlu fil-passat
hija li assumew li huwa għaddej li jkun fattur varjabbli meta, fil-fatt,
huwa kostanti.
>> Kull dritt, hekk hawn allura, f'dan il-każ, aħna ma tispeċifikax xi tip ta 'ritorn.
Aħna ser nuruk kif tagħmel lilek li fi ftit mument.
Iżda avviż li hawnhekk għandna biss sempliċi jekk il-kundizzjoni.
Jekk il-gradebook hija vojta, li f'dan il-każ
huwa biss il-proprjetà ta 'din numru sħiħ firxa, allura aħna jistampa xi ħaġa.
Inkella nagħmlu xi ħaġa oħra.
>> Pretty sempliċi s'issa I think.
Imma stop me jekk għandek xi mistoqsijiet.
>> Issa din il-funzjoni, medja, tieħu wkoll xi argumenti, jew pjuttost argument wieħed,
li hija l-gradebook, u dan iż-żmien se jirritorna tip doppja.
Minħabba li qed ikejjel il-medja u huwa
ser fil-fatt jirritornaw li medju maħdum għall-linja li qed issejjaħ.
>> F'dan il-każ, aħna speċifika l- ritorn tip wara vleġġa.
U dan jista 'jħossu tip ta 'stramb fl-ewwel.
You ħadthom imkabbra mdorri biex jiġu stabbiliti r-ritorn
tip qabel l-isem tal-funzjoni.
Imma jekk inti taħseb ta 'dan f'termini tal-matematika,
bħal meta jkollok matematika li jiddefinixxu funzjoni,
għandek funzjoni ma 'xi inputs, u jipproduċi output.
U dan huwa eżattament dak li dan suppost biex jimitaw.
U hemm ftit lingwi oħra li għandhom sintassi simili kif ukoll,
iżda probabbilment xejn li inti stajt tidher fl CS50.
Iżda xorta ma jkun konfuż minnha.
Il-vleġġa jfisser dak li qed jiġri jingħataw lura f'dan il-każ.
OK, hekk kif ser nieħdu biex tiġi kkalkulata din il-medja?
Ukoll, jekk il gradebook huwa vojt, tajjeb allura aħna qed
ser jirritorna 0, li forsi mod raġonevoli biex jittratta din.
I do not know, ejja come lura għal dak fil ftit.
Dan jista 'effettivament ma tkun mod raġonevoli
biex tiġi kkalkulata l-medja jekk għandna gradebook vojta.
>> Imbagħad aħna ser biss iwettqu għadd totali tagħna.
Avviż li hawn għandna attwalment jkollhom verżjoni supplenti ta '
għal loop, li jippermetti li jtenni fuq kull oġġett uniku fil-firxa
u l-post kull element fis varjabbli tagħha stess.
Billi jiġi speċifikat dwar grad gradebook, dak li qed tgħid
huwa li aħna qed tmur biex impliċitament toħloq kostanti ġdid imsejjaħ
grad li ser tirrappreżenta kull oġġett uniku fil-gradebook
kull darba li l-għall ttenni linja.
Allura l-ewwel darba li huwa run, grad se
tkun l-ewwel punt fil-gradebook.
It-tieni darba dan ser ikun il- tieni partita, hekk u ibqa 'sejjer hekk
sakemm gradebook għandha eżawriti innifsu ta 'elementi.
Allura aħna se tista 'tiġi kkalkulata dik grad fis varjabbli għadd totali tagħna
u r-ritorn medja tagħna kif konna rajna qabel.
OK, xi mistoqsijiet?
Iva?
UDJENZA: Għandi żewġ mistoqsijiet.
Numru wieħed, ipotetikament, jista inti tmexxi numru sħiħ fuq dan wieħed?
Ma għandekx tkun doppja, hija li korretta?
DAN AMRMENDARIZ: Tista irrepeti din il-kwistjoni?
UDJENZA: Nista 'nagħmel numru sħiħ bħala l-medja?
DAN AMRMENDARIZ: Tista do integer bħala medja?
Allura ritorn integer medja minflok doppja?
>> UDJENZA: Return-- inti dan id-dritt issa hawn taħt.
DAN AMRMENDARIZ: Dritt hawn, ritorn 0.0?
UDJENZA: Yeah, biss jirritorna 0.
U għalhekk se jkun jew 80 jew 85, iżda mhux 85.2.
>> DAN AMRMENDARIZ: Allura f'dak il-każ, hekk hemm koppja modi differenti
tingħata risposta għal din.
Let me tweġibhom fl-ordni.
Mela jekk jien biss tagħmel dan ir-ritorn 0, ta '0 huwa valur sħiħ.
U hekk li se jikkawżaw tip żbalji għal dan il-każ
minħabba li qiegħda tistenna doppja iżda mbagħad jirritornaw integer.
Jekk I jridu jirritornaw numru sħiħ, I jistgħu.
I tista 'tistabbilixxi t-tip ta' ritorn li int, jirritornaw 0 hawn,
u ma jwettqu diviżjoni doppja.
Imma allura aħna se jkun tagħmel diviżjoni numru sħiħ.
U hekk aħna mbagħad mhux se tikseb l- medja li aħna se possibilment jistennew.
Iżda iva nistgħu timmodifika it-tipi f'dak il-mod.
>> UDJENZA: U t-tieni, inti jkollhom il Double waħda fuq il-quċċata.
Iżda stabbiliti hawn taħt, meta inti tagħmel ritorn Double Double,
li diġà awtomatikament jirritornaw format Double.
Għaliex inti xorta jkollok bżonn biex jiddefinixxu ma vleġġa fuq quċċata ma 'Double?
>> DAN AMRMENDARIZ: So fil-każ, dan huwa parti
tal the-- hekk li jirrepeti l-kwistjoni, għaliex dan huwa impliċitu mill-prospett
tipi hawn, liema tip dan fil-fatt huwa, għandna bżonn li jkunu espliċita ma Swift
dwar dak li rridu li ritorn minn din il-funzjoni
b'tali mod li meta huwa jwettaq tip verifika, tista 'tagħmel ċert
li dak li għandna attwalment bil-miktub stabbiliti hawn taħt fil-fatt konformi ma 'dak.
Allura huwa tip simili ta 'verifika lilek tip ta 'sitwazzjoni.
Iżda hemm are--
>> UDJENZA: [inaudible] vleġġa?
>> DAN AMRMENDARIZ: Hemm każijiet meta nistgħu jispeċifikaw li nistgħu impliċitament
tistabbilixxi t-tip ta 'ritorn.
Iżda f'dan il-każ, jien ma jaħsbu li tkun taħdem.
Hemm xi sintassi oħra li aħna ser tara aktar tard.
>> Dritt kollox, hekk dan is-sors kodiċi huwa ftit differenti
għaliex dan parses argument minn il-funzjoni li aħna qed titlob.
Let me nuruk kif taħdem qabel we attwalment jimxu fuq
li xi affarijiet interessanti li qed jiġri fil Swift.
>> Allura f'dan il-każ, jekk I biss run dan kodiċi, avviż li dak li qed tagħmel
filwaqt is--, it-tip ta ' tagħti me żball stramb.
I bżonn li tgħaddi dan koppja ta ' interi bħala argument linja tal-kmand.
Mela ejja ara, 150 u 80, u hit Ikteb biex issir taf dak li attwalment jagħmlu.
Huwa taċċetta kull wieħed dawn il-valuri bħala interi.
Huwa inputjar tagħhom fiċ-gradebook.
U allura huwa jwettqu dak il-kalkolu medja
u outputting li kif nistgħu nistennew.
>> Imma ovvjament hemm xi ħaġa għaddej fuq dan il xi ħaġa li tiċħad
xi ħaġa bħala numru sħiħ.
Kif inti tista 'recall minn meta konna jittrattaw argumenti kmand linja
fis-C u lingwi oħra, l-ewwel ħafna Partita 0-th fil dan l-argument linja ta 'kmand
lista hija l-isem tal-kmand li għandna attwalment eżegwita.
Allura f'dan il-każ, jien biss looping fuq l-argumenti kollha linja tal-kmand.
Imma jien ma nagħmilx xi tip ta 'fancy tikkontrolla biex skip fuq li l-ewwel wieħed.
Jien biss espliċitament jew impliċitament jien verifika liema minn dawn it-tipi
huma interi qabel I attwalment iwettqu din il-komputazzjoni.
>> U li essenzjalment dak li qed jiġri hawn.
Għal kull argument argumenti tal-proċess ta,
Jien ser iwettaq xi verifika.
U f'dan il-każ, jien ser biex tipprova ewwel jikkonvertu
dan l-argument fis integer mill jwettqu typecast espliċitu,
minħabba li huwa, fuq input, string u mhux fil-fatt numru sħiħ.
>> Iżda din hija tip ta 'sintassi stramb, jekk grad let ugwali Int (argument).
Dak li huwa verament jiġri hawnhekk hija estremament
importanti għall-użu Swift tiegħek.
Dan qed tuża x'hemm imsejħa 'tip mhux obbligatorju.
>> Allura din il-funzjoni, Int (argument), prospetti mhux biss numru sħiħ, iżda prospetti
dak li sejjaħ integer mhux obbligatorju.
U għalhekk dan huwa tip ta ' tip fuq quċċata ta 'tip.
Tista 'tip ta' jimmaġina hija simili huwa jirritorna bħal pakkett.
U meta inti tiftaħ li pakkett, tkun jew
għandha integer, li huwa r-riżultat, jew hija għandha assolutament xejn fil-livelli kollha.
U dan huwa utli bħala verifika żball mekkaniżmu, għaliex f'dan il-każ
nistgħu niskopru, kien dan tip konverżjoni suċċess?
Jekk kien, allura huwa fil-fatt ser ikollhom numru sħiħ ġewwa.
Inkella li għaddej biex ikollhom xi valur li aħna ser sejħa xejn, li
huwa rappreżentattiv ta 'ebda numru sħiħ fil-livelli kollha.
Huwa tassew rappreżentattiv tal xejn.
>> U hekk dan jekk il-kostruzzjoni jippermetti li tikxef dak il-pakkett,
li fakultattiv vinkolanti.
U jekk aħna kapaċi biex tikxef li pakkett u jsibu integer ġewwa,
allura dak li qed tgħid hawnhekk hija li aħna se mbagħad
jippermettu li l-valur li għandu jiġi stabbilit fil din il-kostanti imsejħa grad.
U dan il-porzjon tal-, jekk id-dikjarazzjoni, il-porzjon ta 'fuq tal-, jekk dikjarazzjoni
se jimxu, minħabba li Tikxef kienet ta 'suċċess.
>> Jekk huwa biss hekk jiġri li kien hemm żball forsi
f'dan konverżjoni tip espliċita minn string għal numru sħiħ, forsi
huwa l-ABC valur per eżempju.
U li attwalment mhux se li jikkonvertu għal numru sħiħ.
Imbagħad huwa ser jerġa xejn, li mhuwiex numru sħiħ.
U dan jekk id-dikjarazzjoni ukoll allura jonqsu.
grad ma tkunx teżisti minħabba li m'għandux kontenut numru sħiħ.
U se jimxu f'dan il-blokk ieħor minflok.
Iva?
>> UDJENZA: Xejn hija-N I-L?
DAN AMRMENDARIZ: xejn hija N-I-L, iva.
>> Allura dan huwa forsi waħda mill- affarijiet agħar dwar Swift,
speċjalment meta int fil l-ħaxix ħażin fuq app IOS
u int fil-fatt tipprova biex jagħmlu xi iżvilupp hemmhekk.
Li għaddej biex jiġu yelling fi inti dwar fakultattiva.
Li għaddej biex tkun qed issaqsi lilek għall trade marks in kwistjoni u l-punti exclamation.
Imma ladarba inti figura out-- jekk inti jiddedikaw ftit ħin biex jidhru
dak li huwa għaddej ma 'tipi mhux obbligatorji, inti ser tiffranka yourself ħafna ras
kif inti qed tipprova tikteb app fil Swift.
>> Huwa fil-fatt karatteristika qawwija ħafna.
U inti ser ikollok biss biex tieħu kelma tiegħi għaliha għal issa.
Iżda aħna ser tara din il-kostruzzjoni u xi oħrajn bhalu
f'xi wħud mill-kodiċi sors ieħor li aħna ser nuruk biss fi ftit.
>> Hemm xi mistoqsijiet inizjali hawn?
Allura l-takeaway importanti hija li tip fakultattiv huwa tip ta 'metatype.
Hija la għandu valur, u jekk dan huwa minnu, allura
forsi se jkollhom dak il-valur assoċjat magħha, jew ma jkollu ebda valur li tkun,
u huwa rappreżentat minn xejn.
Il-bqija ta 'dan huwa forsi kif tista 'tistenna.
>> Mela ejja rampa l- diffikultà għal darb'oħra.
U din id-darba, ejja tagħti ħarsa lejn uħud tipi ta 'data oħra li attwalment jeżistu.
Waħda minnhom hija dizzjunarji, li huwa simili ħafna għal dizzjunarji Python.
Huwa pjuttost simili għal tabella hash fil C. Hija essenzjalment immappjar ta 'ċwievet
fejn ċwievet jistgħu jkunu kordi.
U meta inti tfittex up dawk keys, dawk keys se jkollu valur.
Għalhekk mhuwiex pjuttost firxa, iżda minflok, assoċjati aktar mill-qrib
li mappa hash jew tabella hash.
>> Ejja naraw kif dan suppost għax-xogħol qabel we attwalment
jmorru fil-kodiċi tas-sors innifsu.
Jekk I biss run dan, xejn verament jiġri.
Huwa javżak me li jien jistennew xi parametri tat-tip li ġej.
Hekk jien ser jipprovdu lill huwa xi problema stabbiliti ismijiet,
hekk pset0, forsi sibt 100.
U pset1, sibt 5.
U mbagħad fuq l-eżami, I ma verament tajjeb u ltqajna 30.
U oops, I hit l-ispazju hawn.
>> Meta I hit Ikteb, tista 'tara huwa jwettaq xi komputazzjoni.
Hija tgħid gradebook huwa ta 'tliet gradi, pset1, pset0, eżami.
U l-gradebook għandha din il-medja speċifika.
Għalhekk għal darb'oħra, aħna qed jaħdmu ma din l-idea gradebook,
imma aħna qed tmur biex tkompli mtennija mal-kumplessità tal-funzjoni tagħna.
>> Allura fil-bidu, aħna qed biss se toħloq funzjoni li
huwa responsabbli għall-istampar tal-użu.
U hemm dan ħruġ funzjoni li se biss
sfurzat nieqaf l-applikazzjoni.
Dan mhux xi ħaġa li inti ser tuża fil app IOS.
Dan huwa biss, f'dan il-każ, bi argument kmand tal-linja.
Li jmiss aħna ser tibda miexja lejn Xcode.
Iżda din hija speċifika għal kmand linja programm stil Swift.
>> Ejja tagħti ħarsa lejn uħud mill l-affarijiet interessanti hawn.
Ejja naraw, biss ftit affarijiet interessanti li wieħed isemmi forsi
hija li fil-funzjoni tiegħi ta istampar in-numru ta 'gradi,
inti tista 'recall li kelli dik il-lista tal pset1 items--, pset0, u eżami.
Inti tista 'attwalment malajr u faċilment jagħmlu dan
billi tieħu l-gradebook, li hija dizzjunarju li għandha ċwievet u valuri.
Find kollha tal-muftieħ huwa permezz il-metodu ċwievet dot hawn,
u mbagħad jużaw dan joinWithSeparator, li mbagħad jieħdu l-keys
li kellna ittajpjat fil, pset1-- jew sorry, pset0, pset1, u exam--
u concatenate flimkien użu ta 'virgola u spazju
biex joħolqu sekwenza waħda twila.
Din l-operazzjoni tingħaqad huwa biss phenomenally utli fil-varjetà ta 'kuntesti.
U għalhekk huwa dan joinWithSeparator.
>> U dan huwa ħaġa waħda li mibdul minn Swift 1 sa Swift 2.
Hemm użati biex tkun Style-- Python jekk int
familjari ma Python-- a Python stil jissieħbu metodu fuq kordi.
Iżda dan m'għadux il-każ fil Swift 2.
Inti tixtieq li tuża dan jekk inti tixtieq li concatenate firxa ta 'għalf
flimkien ma 'sekwenza.
>> Allura forsi imbagħad fil tagħna diskussjoni ta 'medja qabel,
jagħmel ftit aktar sens għalina li tiffissa l-funzjoni medja
li jkun doppju obbligatorju pjuttost minn sempliċi doppju espliċita.
Minħabba kellna li kondizzjoni mhux tas-soltu fejn,
dak li jekk gradebook attwalment m'għandha l-ebda valuri fi ħdanu?
X'għandhom ikunu l-qligħ medju?
>> Ukoll forsi fl C inti kien jagħmel xi ħaġa
bħal provdut valur sentinella, bħal 0.0, jew forsi numru negattiv,
jew xi ħaġa biss li jirrappreżenta l-fatt li kien hemm xi kundizzjoni żball
u inti forsi ma attwalment jkollhom l-abbiltà biex tiġi kkalkulata dik il-medja.
Ukoll l-sbuħija ta tispeċifika tip fakultattiva tkun li tagħmel dan.
U jien issa tgħid dawn il-kliem kollha, iżda dan fil-fatt ma jużax optionals.
Iżda aħna ser tara li fi ftit minuti fejn nistgħu stabbiliti medja
li jkun tip ta 'data fakultattiva sabiex jekk fil-fatt jirritorna xi data, imbagħad
aħna se terġa 'lura dak id-data.
Inkella aħna se terġa 'lura xejn, qal li dan
m'għandha l-ebda komputazzjoni sinifikanti.
>> Ejja jimxu fuq xi ħaġa oħra.
Allura minn hawn, aħna kont qed tħares lejn kollha dawn l-eżempji fil-linja tal-kmand.
Imma verament dak li int ser li jkunu jittrattaw huwa Xcode.
U waħda mill-affarijiet sbieħ dwar Xcode huwa, u speċifikament fl Swift,
hija li għandna din ħaġa imsejħa Playground.
U Playground hija mhuwiex f'kull app IOS.
Iżda tippermetti li inti esperiment ma Swift b'mod faċli ħafna.
Tista 'tip kollha ta' kodiċi tiegħek.
Huwa nicely sintassi enfasizzat hawn.
Meta inti toħloq fajl ġdid, se titlob jekk inti tixtieq li toħloq Playground.
Imma l-ħaġa sbieħ dwar il Playground hija li fuq il-lemin tat-tieqa tiegħek,
ma attwalment nuruk output minn kodiċi tiegħek.
Mela jekk jien iscroll, nistgħu naraw dak li l-output ta 'diversi linji ta' kodiċi
fil-fatt jiġri li jkun.
>> Allura f'dan il-każ, aħna qed tmur biex bidla direzzjonijiet biss ftit
u jitkellmu dwar xi ħaġa li tassew importanti li dan il-mod livell għoli
li Swift topera, u hija din idea ta 'għeluq.
U inti stajt probabbilment jidhru dan ftit fil JavaScript.
Għal dawk minnkom li huma CS50, għeluq
huma popolari ħafna, mod tajjeb ħafna ta 'kif isir affarijiet ta 'livell għoli fil-lingwi moderni.
Imma hija wkoll tip ta 'diffiċli biex wrap ras tiegħek madwar l-ewwel darba.
Mela jekk inti tħares lejn din ewwel darba, li l-OK.
Biss ħarsa lejn il-kodiċi tas-sors u ara jekk inti tista 'figura hija out fid-dar.
>> Allura f'dan il-każ, ejja ngħidu li aħna tixtieq li joħolqu ħafna ta 'esponenti
ma 'xi valur fiss.
Allura f'dan il-każ I jista 'joħloq funzjoni.
Jien ser sejħa hija qawwa ta ' 2 iskop li lingwata fil-ħajja
huwa li jieħdu xi kontribut u double dan, u r-ritorn dak il-valur.
Avviż li hawn jien taċċetta tip wieħed ta 'data.
Huwa ser jkun fattur varjabbli imsejjaħ x.
Huwa ta 'tip Double.
U jien ser jirritornaw Double hawn.
U jien biss se jagħmlu a ħafna, franchement, pretty
mod naive tirdoppja dan il-valur.
U jien ser nuruk għaliex dan huwa utli fi ftit tieni.
>> Avviż li hawnhekk għandna din il-firxa mill-ġdid. għal xi ħaġa f'1, dot
dot dot, 2, li jfisser li dan loop se jibqa 'għaddej darbtejn.
Iżda dan jirrappreżenta varjabbli finta.
Dan ifisser Jien ma verament se tkun qed tuża dak il-varjabbli fi kwalunkwe post
ġewwa ta 'dan loop.
I biss jixtiequ din il-linja tal-kodiċi jiddekorri darbtejn,
mingħajr il-bżonn li tkun taf il-valur ta 'dik il-medda.
>> Allura f'dan il-każ niġri riżultat drabi x darbtejn, li essenzjalment
ifisser li jien jitħallas dan il-valur.
U dan jiġri xogħol kif aħna tistenna.
Power ta '2, tgħaddi valur ta 2.0 tagħtina output tal-4.
3.2 xogħlijiet għall 10.24.
>> Issa nistgħu nagħmlu simili ħaġa għall-enerġija ta '3.
Imma issa tinbidel biss il-firxa.
Għal varjabbli dummy in 1 sa 3, immoltiplika 3 darbiet,
u jagħmlu l-istess ħaġa.
>> Allura dan jista jħossu ftit artifiċjali.
Iżda hemm xi importanti ħaġa hawn li
hija li tħares lejn dawn żewġ funzjonijiet, hemm
unika ħaġa waħda li l differenti, li huwa dan il-valur fil-medda.
Kollox dwar dawn iż-żewġ funzjonijiet, l-enerġija ta '3 u l-qawwa ta' 2,
huma, fil-fatt, identiċi minħabba jaħdmu bl-istess mod.
>> Allura f'dan il-punt, ftit allarm qanpiena għandhom jkunu għaddejjin off.
Nisperaw dak li qed tgħid, tafu, dan iħoss ftit
bħal sforzi doppji.
Forsi hemm mod li nixtieq tkun tista 'jirrappreżentaw kollha ta' dan
u jipprovdu funzjoni jew joħolqu funzjoni li
ma eżattament dak li nixtieq mingħajr bżonn li tip li b'mod espliċitu.
U dan huwa dak li l-qawwa ta 'għeluq jippermetti li tagħmel.
Mela ejja tagħti ħarsa lejn dan.
U jien ser jonfqu ftit minuti fuq dan, għaliex dan
hija pjuttost importanti għall Swift.
Naraw dan il-ħin kollu.
Aħna qed tmur biex jiddefinixxu funzjoni.
Li għaddej biex jiġu msejħa powerOf.
Huwa ser jaċċetta parametru imsejjaħ y tat Int tip.
Iżda tagħti ħarsa lejn it-tip ta 'ritorn.
It-tip ritorn hija, fil parentesi, Double vleġġa Double.
Li jfisser li din il-funzjoni, dan powerOf funzjoni,
huwa jirritorna funzjoni.
Dan huwa jaċċetta Double u jirritornaw Double.
Allura li jista 'ħoss tip ta' crazy, imma ejja iscroll down ftit
u tfittex biex tara x'jiġri.
Aħna ġewwa ta 'dan powerOf funzjoni.
Aħna qed joħolqu funzjoni ġdida imsejħa exponentiator,
iżda ma jimpurtax dak li hu.
>> Avviż li dan għandu valur input ta x.
U qed tieħu fil-Double u jirritornaw Double.
U dan huwa l-istess kodiċi li aħna raw hawn fuq, ħlief li l-valur tat-2
jew il-valur ta '3, li fuq marbuta f'dik il-firxa,
ġie sostitwit bl dan il-valur ta 'y, li
kien il-parametru inizjali tal-funzjoni powerOf tagħna.
U f'dan il-punt, aħna ritorn exponentiator.
Aħna qed jirritorna l-funzjoni.
>> Huwa tip ta 'prodotti simili blowing mind ftit.
Imma ejja jimmaġina dak li jiġri meta I call din il-funzjoni powerOf
u jgħaddu fis dan xi valur bħal 2.
X'inhu dan ifisser huwa li I issa għandhom il-valur
2 għal y, li jfisser li dan il-valur y f'dan funzjoni exponentiator
se jkun dak il-valur 2.
Imma jien lura dan funzjoni exponentiator.
>> Allura avviż dak Swift jgħid I ħolqu f'dan il-każ.
let kwadru definizzjoni, huwa funzjoni li taċċetta Double
u prospetti ta 'Double.
I ħolqu funzjoni li kwadri xi ħaġa
Dan il-mekkaniżmu dritt hawn.
U verament dak li qed jiġri hu li jirritorna din il-funzjoni
exponentiator, iżda dan il-valur y hija mgeżwra ġewwa ta 'dan.
U hekk issa kull darba I jużaw dan varjabbli jew din il-kostanti imsejħa
kwadru, huwa li għaddej li jaġixxu bħala funzjoni.
U so I jistgħu mbagħad sejħa dak il-varjabbli bħal I kieku ssejjaħ għal funzjoni,
u jgħaddu fih numru, bħal f'dan il-każ 3.
U jien mbagħad kwadru dan il-valur.
Allura 3 kwadrat imbagħad jsiru 9, kif nistgħu naraw hawn.
>> Really crazy, iżda dan issa tippermetti me l-opportunità
biex joħolqu funzjonijiet oħra powerOf.
Like I tista 'tgħid, OK, ukoll issa nixtieq li toħloq funzjoni ġdida, powerOf (3),
u jaħżnu li fi imsejħa kubu kostanti.
U issa kubu se jkun funzjoni separata li se mbagħad
tieħu xi valur bħala input u kubu li valur kif nistgħu naraw fil-linja tal-qiegħ
hawn.
kubu ta '2 se jirriżulta fi 8.
>> Jittieħed Nisperaw pretty pulita.
Inti stajt qatt rajt dan qabel.
I ninkoraġġukom biex tħares lejn għeluq u tinvestiga dan ftit aktar.
Huwa Jittieħed verament b'saħħtu naraw ħafna fl JavaScript u f'xi lingwi oħrajn.
Huwa tassew vitali li fehim APIs kif ukoll
li aħna ser tingħata biex fi ftit tieni.
Iva?
>> UDJENZA: Meta tagħmel powerOf (2), parentesi, u mbagħad
parentesi ieħor, input-- ieħor inti bażikament qed tieħu post il-kwadru.
DAN AMRMENDARIZ: Sabiex tfittex fl-aħħar linja hawnhekk.
Huwa fil-fatt totalment possibbli li tagħmel dan ikkatenar kif inti suġġerit.
Allura powerOf (5) tfisser li aħna qed tmur li jkollhom exponentiator tal-5 up here.
Allura dan huwa essenzjalment se tkun l- istess ħaġa bħat 4 għall-ħames enerġija,
għaliex aħna ħadthom ħolqot exponentiating funzjoni għall-ħames enerġija,
u aħna qed tgħaddi ġol li jiffunzjonaw l-valur 4.
U nikbru dak il-valur li nistennew, 1024.
UDJENZA: U mhuwiex isem, u għalhekk jagħmilha aktar faċli
biex jinqraw, il-kwadru x'ikun.
>> DAN AMRMENDARIZ: Dritt, eżattament.
Allura qabel I biss jitqiegħed fi kostanti hawn hekk
li għamilha faċli biex jintuża dak l-isem.
Iva?
>> UDJENZA: F'dan il-kuntest powerOf, huwa parti
tal-lingwa ta 'programmar għall-kuntrarju-mod kif inti
jaħsbu powerOf f '[inaudible]?
DAN AMRMENDARIZ: So f'dan il-każ, powerOf
hija sempliċement l-isem tal- funzjoni li I definit up here.
Għalhekk mhuwiex inerenti għal-lingwa nnifisha,
iżda minflok, huwa biss funzjoni li għandha
dak l-isem minħabba I tagħtiha dak l-isem.
Kwalunkwe mistoqsijiet oħra?
Kull dritt.
>> Issa dan huwa kbir.
Imma int mhux se tara Ħafna funzjonijiet għeluq li
huma bħal dan fejn inti tiddefinixxi, ġewwa ta 'funzjoni waħda, funzjoni oħra.
U inti tista 'tagħmel dan.
Iżda huwa tip ta 'mhux verament meħtieġa, id-dritt?
Bħal għaliex għandi jiddefinixxu dan funzjoni msejħa exponentiator
u mbagħad minnufih jirritornaha.
Għaliex ma tistax I biss immedjatament ritorn din il-funzjoni?
>> U fil-fatt, dan huwa preċiżament l-idea wara kunċett imsejjaħ
funzjonijiet anonimi, fejn funzjonijiet anonimi ma attwalment
għandhom isem għaliex ma jeħtiġux li jkollhom waħda.
U hekk f'dan il-każ, fil 7B, nistgħu nsibu preċiżament din.
Dan kollu l-istess kodiċi, ma eżattament l-istess ħaġa,
iżda issa konna inbidlet xi ftit hekk li din il-funzjoni powerOf immedjatament
prospetti funzjoni.
Avviż li wara r-ritorn, hemm xi parentesi kaboċċi miftuħ.
Huwa jistennew dan il-kontribut Double.
Huwa jistenna li l-output Double.
U allura l-keyword fil tifred il-kodiċi innifsu.
Allura dan huwa funzjoni anonimu.
Din attwalment ma għandhom isem, filwaqt qabel ma kienet mitluba exponentiator.
Imma kif rajna, biss verament ma rreferietx għall exponentiator
barra tal-funzjoni.
Allura ma jimpurtax.
Allura din il-funzjoni anonima hija hekk imsejħa minħabba li huwa nameless,
iżda huwa għadu qed jintuża fil-kuntest ta 'dan il-kodiċi.
>> Dawk koppja li jmiss jien se tkompli nisperaw
blowing moħħok ftit.
Nistgħu jissimplifika dan saħansitra aktar.
Għaliex kif kien astutely indikat qabel, l
forsi aħna tassew taf, minn ddeduċiet minn dan il-kodiċi, dak
l-output ta 'dan il-kodiċi se jkun.
U fil-fatt, f'dan il-funzjoni anonima, nistgħu fil-fatt jiddeduċu-tipi ta 'data.
>> Allura f'dan il-wieħed, aħna m'għadx jeħtieġ li jiġu definiti b'mod espliċitu
it-tip ta 'data li l-jiġu input u output minn din il-funzjoni
għal ftit ta 'raġunijiet.
Waħda hija li konna definit, up fil- prototip tal-funzjoni li jagħlaq,
liema tip ta 'data anonima dan funzjoni għandha input u output.
U mill-oħra, aħna Minn dan joħroġ il-kodiċi
stabbiliti hawn li aħna qed taċċetta input li hija ta 'tip Double
u jirritornaw Double.
>> Avviż li hawn aħna ma espliċitu definiti l-ismijiet tal-argumenti
li din il-funzjoni hija taċċetta.
U hekk naraw aħna jistgħu jirreferu għal dawk il-parametri li jużaw $ 0, $ 1, il
hekk u ibqa 'sejjer hekk, skond il- in-numru ta 'dak il-parametru użati
F'din il-funzjoni.
>> Din hija xi ħaġa li inti tmur biex tara ħafna huwa dan bracket kaboċċi miftuħa
definizzjoni segwit minn $ 0, u mbagħad ftit operazzjoni,
u mbagħad bracket kaboċċi magħluqa.
Li hija funzjoni anonimu li jwettaq din l-operazzjoni.
Hija għandha dan il-parametru fejn huwa tip hija inferita.
Dik l-ewwel parametru huwa $ 0.
U xi operazzjoni hija jiġri fuq dik $ 0.
>> UDJENZA: Allura l-sinjal dollaru ifisser parametru bażikament,
u 0 tfisser l-ewwel waħda?
DAN Armendáriz: Li korretta.
Allura l-sinjal dollaru bażikament ifisser parametru, u 0 tfisser l-ewwel waħda.
Imma taħdem speċifikament F'dan il-każ fejn I ma bl-isem
l-argumenti fil-funzjoni anonima tiegħi.
>> UDJENZA: Does Perl jew xi ħaġa ikollhom dan is-sinjal dollaru, dollaru 0 fil hemmhekk?
DAN Armendáriz: Does li, jien sorry?
UDJENZA: Does Perl jkollhom dan dollaru 0, dollaru 1--
DAN Armendáriz: M'inix wisq familjari ma Perl,
imma PHP dak li jiddefinixxi varjabbli ibbażata fuq sinjali dollaru.
U jista 'jkun hemm xi lingwi li għandhom karatteristiċi bħal dan.
Fil-fatt, Swift jissellef ħafna karatteristiċi bħal dan
minn lott ta 'lingwi oħra.
Naraw ħjiel ta 'Python fiha.
Din id-definizzjoni tat-tip jidher li ġejjin minn OCaml.
U aħna għandna biss mazz sħiħ ta ' Jittieħed mill-lottijiet ta 'lingwi differenti.
Din kienet waħda mill-sbieħ affarijiet dwar Swift
huwa li jieħu ħafna ta 'l-aħjar ideat minn mazz ta 'lingwi
u shoehorns kollha flimkien fis lingwa super wieħed.
Fil-fatt, jekk inti ippermettuli tkompli blowing moħħok,
hekk aħna kont qed tagħmel dan kollu.
Aħna forsi jista 'jissimplifika dan ftit bit minn jirrealizzaw li, naturalment,
Swift għandu exponentiating funzjoni mibnija.
Jekk I importazzjoni Darwin, li huwa biss il-librerija li
karatteristiċi din il-funzjoni tissejjaħ Pow, issa I jista 'jissimplifika qawwa tiegħi tal-funzjoni
li jkun ġej.
Huwa ser jirritorna din il-funzjoni anonima.
>> Iżda tħares lejn kif sempliċi issa dan huwa.
Din hija funzjoni anonimu li hija taċċetta xi tip ta 'data,
u huwa se jkun wieħed argument speċifiku,
referenza fl $ 0 li hija ta 'tip Double.
Huwa ser jirritorna tip Double.
Iżda l-istqarrija ritorn huwa issa impliċitu.
>> U huwa dan l-istil eżatta li huwa ħafna, ferm prevalenti fil Swift,
kollha fuq il-post.
Aħna qed tmur biex tara din il-ħin kollu fil Swift.
Hekk jien turi kollha ta 'dan li inti minħabba dan sintassi.
Dan huwa komuni ħafna biex tara, li jfisser li
hija funzjoni anonimu li qed iwettaq
xi operazzjoni fuq dawn l-argumenti.
U hemm qligħ impliċitu.
Għalhekk huwa assolutament l-istess ħaġa għalina li ngħid dan, dritt hawn.
>> Minħabba dan kaboċċi bracket hija funzjoni,
aħna qed iwettaq din l-operazzjoni fuq l-ewwel argument.
Aħna qed tmur biex jirritorna dik.
Iżda dan ir-ritorn ta 'barra huwa jirritornaw dik il-funzjoni sħiħa,
dik il-funzjoni anonima kollu li konna biss maħluqa.
Kwalunkwe mistoqsijiet oħra?
Dritt kollox, I do not know jekk inti guys huma lesti għal dan,
iżda nistgħu mmorru anki crazier ma Swift.
Inti lest?
OK, dan huwa kbir.
>> Issa għandna attwalment ikollhom l-abbiltà li, fil Swift, minħabba kif modulari
u kif bbażati protokoll huwa, li jiddefinixxu l-operaturi freaking tagħna stess.
Bħal f'dan il-każ, kellna l-ebda operatur għall exponentiation-- tajjeb,
għat-twettiq poteri ta 'xi ħaġa.
Imma nista ', fil Swift, jiddefinixxu ġdida operatur li ma preċiżament dan.
Allura f'dan il-każ hemm mazz ta 'sintassi hawn.
U jien ser jippermetti li inti tħares lejn din id-dar meta inti tħares lejn din.
Iżda aħna qegħdin jiddefinixxu dan Infix operatur, **, li mbagħad jippermetti magħna,
billi jiddefinixxu dak li funzjoni ** attwalment
ma, li taċċetta naħa tax-xellug u naħa tal-lemin,
u mbagħad biex jirritorna l-esponent ta 'dak naħa tax-xellug biex il-lemin.
>> U hekk issa kollha ta 'I f'daqqa ħolqu numeratur ġdid.
Allura 2 ** 3 ifisser 2 għat-tielet enerġija.
[Mind blowing ĦOSS] Dan billi innifsu għandha tagħmel inti tkun simili,
OK, bil-kamin C. jien ser Swift it-triq kollha.
Dan huwa kbir.
Dan huwa pjuttost meraviljuż.
>> Għalkemm dan huwa eżempju kbir.
Imma jien qatt darba barra ta 'dan l-eżempju fil-fatt
definit operatur tiegħi stess.
Iżda xorta, dan juri lott tal-qawwa ta 'Swift
u għaliex dan huwa attwalment verament ħafna jibred.
OK, iva?
UDJENZA: Jekk int tiddefinixxi operatur tiegħek stess,
kif tkun taf inti ma aċċidentalment jippruvaw u joħolqu operatur li l-
fil x'imkien fis-C, bħal moħbija x'imkien fil Swift,
bħal waħda joskuraw li inti ma tista raw qabel.
>> DAN Armendáriz: Mela jekk inti qed tipprova biex jiddefinixxu operaturi tiegħek,
hemm ir-riskju ta 'definizzjoni wieħed fuq operatur eżistenti.
Li tmur fil-livell ta 'dettall li Ma naħsibx li għandna ħin biex tmur fuq.
Iżda dan huwa riskju.
U li huwa fil-fatt ir-raġuni għaliex ħafna I ma jużawx is-simbolu caret, li
meta aħna qed ittajpjar enerġija, aħna normalment użu 4 ftit caret 5 jew xi ħaġa
bħal dik, biss meta nkunu Gchatting buddies jew ikun x'ikun.
Iżda f'dak il-każ, li attwalment kellha mnejn tikkawża ħabta.
U so I evitati hija biss minħabba I ġara li tkun taf f'dan il-każ
li din tista 'tikkawża li ħabta.
>> Kull dritt.
Issa sfortunatament, għal l-aħħar seba 'minuti,
I għandhom iżommu blowing imħuħ tiegħek ftit.
Allura ippermettuli biex turi li inti xi affarijiet oħrajn ukoll.
>> Imxejna murija inti din l-idea ta ' li dawn il-funzjonijiet anonimi,
dan l-għeluq li jippermettu li inti tip ta 'pass funzjonijiet madwar.
Inti tista 'tmur lura lilhom.
Inti tista 'timmanipola minnhom.
Tista 'tagħmel kull xorta ta' għalf crazy.
>> Iżda ħaġa waħda oħra li jiġri li jkun utli
huwa l-abbiltà li, għall-kuntrarju li jirritornaw dawk il-funzjonijiet
fil-funzjoni, li jgħaddu funzjoni bħala parametru għall-funzjoni ieħor.
Inti jista 'jkun ħsibijiet sew għaliex fid-Dinja kieku nixtieq li tagħmel xi ħaġa bħal dik?
>> Well, ejja ngħidu li nixtieq li jieħdu din l-operatur li jien
ħadmu tant diffiċli li joħolqu u japplikaw li mazz ta 'numri differenti
fil-firxa.
Allura f'dan il-każ għandi firxa ta ' integers-- 1, 4, 7, 2, 5, 10, 56.
U nixtieq li tirdoppja lilhom kollha.
Il-mod li aħna se tipikament tagħmel dan huwa li tikteb biss
sempliċi għall loop li itenni aktar minn kollha kemm huma
u jwettaq xi tip ta ' operazzjoni kwadru fuqhom,
inputjar dawk il-valuri ġodda fis-ġdid varjabbli, jew minflok, firxa ġdid hawn.
U l-valur tal-produzzjoni ta riżultat huwa mbagħad kollha ta 'dawk arrays,
jew pjuttost dawk kollha Elementi issa kwadrat.
>> U nistgħu nagħmlu l-istess ħaġa għall cubing dan,
iżda qanpiena allarm ftit għandhom jkunu għaddejjin off
qal li forsi hemm b'xi mod li nixtiequ
tkun tista 'tissimplifika din ftit.
U fil-fatt hemm.
X'jiġri jekk nistgħu joħolqu funzjoni li jippermetti
li taċċetta, bħala predatur, funzjoni?
Allura f'dan il-każ, tieħu tħares lejn dawn l-argumenti.
Aħna qed tmur biex jaċċettaw lista ta jirdoppja.
U allura aħna qed tmur li taċċetta funzjoni
fil-varjabbli msejħa f li ser li tieħu Double u r-ritorn ta 'Double.
U l-produzzjoni kollha ta 'din il-funzjoni sħiħa
imsejħa mapper se ritorn firxa imsejħa doppja.
>> X'inhu dan imbagħad ippermettuli tagħmel huwa li jtenni fuq dik il-lista
u jagħmlu l-istess ħaġa, iżda issa japplikaw dik il-funzjoni fuq kull
tal-valuri individwali f'din il-lista.
So I ma verament jafu liema f hu.
Ma jimpurtax lili.
Iżda sakemm li tkun ittieħdet fi Double, twettaq xi operazzjoni fuqha,
u mbagħad jirritorna Double, I mbagħad tkun
kapaċi jikklassifikaw dik il-funzjoni madwar kull element wieħed fil-lista.
>> U dan it-tip ta 'programmazzjoni imsejħa funzjonijiet ordni ogħla,
fejn aħna qed tgħaddi funzjonijiet madwar bħala parametri
u nagħmlu l-affarijiet ma 'funzjonijiet.
Huwa tip ta 'bħal li jieħdu dawn kollha ideat li konna tgħallimna fil CS50
u jeħodhom sort tal-livell li jmiss.
U dan huwa kollu Jittieħed stil CS51.
U hekk aħna ser imorru fil-fond aktar fil-klassijiet bħal dik.
>> Iżda din hija wkoll importanti hawnhekk għaliex aħna
tara ħafna ta 'funzjonijiet li huma użati fil Swift
li essenzjalment ma dan, fejn għandna
xi numri, xi firxa ta 'numri.
Aħna qed tmur biex jgħaddu dik array fis mapper tagħna.
U aħna qed wkoll ser jgħaddu xi funzjoni, li
konna diġà definiti up here.
Huwa ser ikunu kwadri.
U aħna qed tmur biex imbagħad kwadru kollha ta 'dawk in-numri
u jaħżnu dan in dan ir-riżultat hawnhekk.
>> Allura f'dan il-każ konna definit tagħna funzjoni stess imsejħa mapper.
Iżda dan ħaġa eżatt huwa, fil-fatt, mibnija fis Swift.
Hemm varjetà ta ' funzjonijiet imsejħa mappa.
Hemm funzjoni mappa, hemm inaqqsu funzjoni,
u hemm funzjoni filtru, li essenzjalment tapplika funzjonijiet
għal kull element wieħed fil- lista sabiex ikunu modifikati b'xi mod.
>> UDJENZA: Allura peress li inti qed jittrasformaw id-data fil-format ieħor
permezz ta 'function--
DAN Armendáriz: Dritt.
Yeah, hekk il-funzjoni li aħna qed taċċetta
qed jittrasforma d-data b'xi mod.
F'dan il-każ, konna jew jitħallas, jew konna cubing dan,
jew verament, nistgħu twettaq ebda operazzjoni fuqha fil-livelli kollha.
>> Iżda let me nuruk allura kif dan huwa ser tfittex fil-prattika.
U għal darb'oħra, jien tmexxija ta ' ftit ta 'żmien. so I am not
ser ikunu jistgħu jmorru fuq kollha tas-source code hawn fid-dettall.
Imma I ninkoraġġukom biex tagħmel dan.
Aħna ser jimpustah hekk kif jista 'jkun wara dan talk.
>> Imma jekk inti tagħti ħarsa lejn dan, jassumi li għandna lista ta 'numri,
firxa ta 'numri f'dan imsejħa numri varjabbli.
Imbagħad irridu biex iwettqu dan operazzjoni filtru fuq dawn in-numri.
Allura filtru huwa ogħla funzjoni ordni li
taċċetta firxa u wkoll funzjoni.
U fuq kull element f'dik firxa, li jwettaq dik il-funzjoni.
>> Jekk dik prospetti funzjoni veru, iżomm dik il-partita.
Jekk dik il-funzjoni jirritorna falza, tixħet bogħod dik il-partita.
U allura dan jirritorna lista li mbagħad magħmul kollu
ta 'dawk l-oġġetti li ġew ffiltrat.
>> Allura fi kliem ieħor, dan huwa l-istess idea, il gradebook.
Aħna jista 'jkollhom varjetà ta' gradi fis Dan il-valur ċemplu numri.
Jista 'jkun ta' 100, u 70, u 40, hekk u ibqa 'sejjer hekk.
X'inhu dan il-filtru ma huwa avviż li dan huwa li z-zokkor sintattika
għal funzjoni anonima.
Din hija funzjoni anonimu qal li l-parametru li jien taċċetta
se tkun, jekk huwa akbar minn 70,
allura dan se terġa 'lura veru, li jfisser li dik il-partita se jinżamm f'din il-filtru.
Mela ejja tkun xi ftit aktar konkreta dwar dan.
Jekk ikolli dan firxa ta 'numri u dan jikkonsisti minn 100, 70, u 40,
I twettaq dan il-filtru operazzjoni fuq kull wieħed minn dawn.
Allura li l-ewwel wieħed huwa dan il-valur ta '100.
100 ikbar minn jew ugwali sa 70 hija vera, li
ifisser li 100 jinżamm fil din il-kopja ġdida ta 'dan array.
70. jgħaddi wkoll.
Iżda 40 ma.
Allura dak li huwa rritornat fl passingCount huwa l-firxa ta 'elementi 100 u 70--
100, comma, 70.
Dawn kienu l-uniċi żewġ oġġetti li kienu jinżammu.
U għalhekk l-raġuni I malajr marru permezz ħafna minn dawn it-tip ta 'ordni għolja
affarijiet huma għaliex dan huwa dak komuni ħaġa li se tara fil Swift pretty
spiss, qed iwettaq xi operazzjoni jużaw dan sintassi funzjoni anonima.
>> Hemm xi għalf jibred.
Swiċċijiet huma verament b'saħħtu fil Swift, I tfisser bħad crazy, b'saħħtu crazy.
Tista 'tuża swiċċ, u inti tista 'attwalment tapplika għalihom
li meded, li huwa tip ta 'crazy, u tagħmel għalf fancy bħal dik.
>> Iżda fl-aħħar ftit minuti, Irrid li skip quddiem pjuttost bogħod
u nuruk eżempju speċifiku ta 'kif nistgħu noħolqu fl app IOS użu Swift.
Allura meta int tagħmel dan, inti ser ikollok tieħu
ħarsa at-- fuq Apple dokumentazzjoni, huma
għandhom ħafna ta 'tutorials verament tajba għall-ħolqien ewwel applikazzjoni tiegħek.
U inħeġġiġkom biex tagħmel li minħabba li huma jieħdu inti
permezz l-passi ta 'x'inhi eżattament għall ikklikkja fuq biex toħloq applikazzjoni IOS.
>> Iżda hawnhekk għandna dan app IOS.
U huwa app pretty sempliċi verament.
Jekk I run dan, let me juru inti dak li jidher qisu.
Kull ma essenzjalment ma huwa jiġbed mill-internet fajl JSON
li jien maħżuna fuq server.
U dan il-fajl JSON jiddefinixxi immaġini li jippermettu
me imbagħad ċiklu permezz, fuq tiegħi app, immaġini minn web server tiegħi.
>> So I hawn getNextImage.
Tagħbijiet ta 'immaġni mill-internet, u mbagħad displays fuq l-iskrin.
>> Allura huwa pjuttost sempliċi.
Iżda l-għan hawnhekk huwa li turi inti kif nistgħu ngħaqqdu affarijiet
mill-aħħar ftit ġimgħat ta 'CS50 f'applikazzjoni IOS attwali.
Fi kliem ieħor, forsi wieħed tal- affarijiet li inti se tkun trid tagħmel
għandu jkollha applikazzjoni IOS li jistgħu jiġbdu data mill-internet
u juru l-utent xi informazzjoni.
Li hija għal kollox il-punt ta 'dan il-kodiċi tas-sors hawnhekk.
>> Allura hemm ħafna li jingħad dwar kif jagħmlu iżvilupp attwali IOS.
Hemm ħafna ta 'sintassi crazy li ma rajniex għadhom pjuttost
bħal klassi, liema klassi fatt hu.
Aħna prinċipalment jistax jinjora li għalissa.
>> Iżda avviż li għandna jinsabu fi ħdan dan il varjetà ta 'affarijiet
li aħna stajt diġà raw bħal funzjonijiet li għandhom ismijiet speċifiċi.
U meta aħna nagħtu dawk funzjonijiet l-ismijiet korretti
li huma mistennija minn IOS, fil-fatt dan iħoss ftit maġika.
Imma meta inti toħloq applikazzjoni IOS, hemm
huma ismijiet funzjoni speċifika li huma msejħa mill-telefon stess
l-applikazzjoni huwa tagħbija li tipprova biex jinħolqu l-proċess li attwalment
runs applikazzjoni tiegħek.
Għalhekk għal darb'oħra, hemm ħafna affarijiet li I għandek tinjora hawn sabiex għalina
biex jitkellmu dwar dan b'mod speċifiku.
Imma I ninkoraġġukom biex tħares lejn forsi il seminar IOS oħra, iżda wkoll xi
tal-online tutorials li jagħmlu xogħol aħjar jiġu deskritti
l-informazzjoni speċifika.
>> Iżda nistgħu naraw ftit affarijiet li huma interessanti mill-kodiċi hawn.
Avviż li għandna jekk dikjarazzjonijiet.
Mill-mod, wieħed importanti ħaġa dwar jekk id-dikjarazzjonijiet
huwa li l-parentesi madwar id- Espressjoni Boolean huma fakultattivi.
Iżda l-braces kaboċċi mhumiex obbligatorji, ebda kwistjoni kif ftit jew ħafna linji ta 'kodiċi
għandek fi jekk dikjarazzjoni.
Inti ma jistax ikollu jekk dikjarazzjonijiet mingħajr ċingi kaboċċi fil Swift.
>> U dan huwa, ukoll, tip ta 'iblah.
Iżda hemm raġunijiet storiċi għal dan.
Huwa suppost biex tiffranka mill yourself.
Bħal dan per eżempju, inti ma tistax jeliminaw l-braces kaboċċi madwar li
jekk id-dikjarazzjoni.
Dawk huma fil-fatt meħtieġa.
So I ninkoraġġukom biex tagħti ħarsa lejn dan.
Iżda hemm wieħed aktar jibnu li nixtieq
biex turi li inti dwar Swift li huwa ġdid għall Swift 2.0 mqabbla
għall-verżjonijiet anzjani ta 'Swift, li huwa dan li ġej.
Ejja naraw fejn ma nressaq hawn?
>> Allura f'dan il-funzjoni tissejjaħ fetchJSON, din il-funzjoni
huwa responsabbli għall-ġbid li JSON fajl minn URL, li biss hekk jiġri
li tkun qed taħdem fuq IDE CS50 tiegħi.
I biss bdiet Apache, jitqiegħdu fajl JSON tiegħi hemm,
u jien kapaċi li mbagħad iġbed li data mill-internet bl-użu
din il-funzjoni u dan il-URL, li hija pprovduta mill-telefon.
Huwa pprovdut minn librerija li tuża meta
int tagħmel xi żvilupp app IOS.
>> Avviż hawnhekk li hemm din mhux tas-soltu jibnu sintattika imsejħa gwardja.
U verament dan kollu huwa Swift huwa mod ta 'verifika
li xi affarijiet għandek ġew sodisfatti qabel ma
jipproċedi mal-bqija tal-funzjoni.
So I jista 'jkollhom, bl-użu dan it-tip fakultattiv,
I setgħetx tikkunsidra l-URL mill running din il-funzjoni NSURL
u ħażna li fi URL kostanti, u mbagħad iċċekkjar
biex tara jekk URL kien xejn, minħabba li kienet se jirritorna tip fakultattiv.
U jekk kien xejn, imbagħad I se jistampa żball u mbagħad jirritornaw.
>> Iżda minflok, dak gwardja tikri us tagħmel huwa li ħaġa ħafna,
iżda jiġi żgurat li huwa fil-fatt il-każ li url
ġie stabbilit kif suppost mill NSURL.
U jekk huwa, allura skips fuq dan, u
se jippermetti li inti biex jipproċedi bil url li ġew definiti kif xieraq.
Iżda jekk huwa l-każ li url mhuwiex definit sew,
jekk din il-funzjoni jirritorna żball jew xi ħaġa mhux mistennija oħra
fatt iseħħ, dan tibni gwardja jippermetti li mbagħad output dan l-iżball
u r-ritorn immedjatament.
Iva?
>> UDJENZA: Allura huwa tip ta qisni jekk allura ieħor?
DAN Armendáriz: Huwa tip ta ' bħal jekk imbagħad ieħor, iva,
ħlief li dan url huwa mbagħad definit għal kollox taħt dan.
Jekk tgħaddi din gwardja, allura fil-fatt se tkun mimlija bl-data
u li jistgħu jintużaw fil-bqija kodiċi tas-sors fil-funzjoni tiegħek.
So I tissuspetta li inti qed tmur biex tibda tara dan gwardja ukoll.
U tkun konxja ta 'dan.
>> Hekk biss tħares lejn koppja ta 'oħrajn affarijiet, dan id-dritt hawnhekk huwa dak,
do you think, biss ibbażat fuq dak konna nitkellmu dwar qabel?
>> UDJENZA: Aħseb li ser imexxu fil-lista?
>> DAN Armendáriz: Allura dak qrib.
Din hija funzjoni li aħna qegħdin jiddefinixxu.
U aħna qed tiddaħħal id dik il-funzjoni bħala argument biex din il-funzjoni hawnhekk.
>> UDJENZA: [inaudible] jekk mhux xejn.
Allura huwa fil-lista, id-dritt?
>> DAN Armendáriz: Jekk iżball mhuwiex xejn, b'tali mod li is-- so I jkollhom tiskrollja.
Well, ejja ara, I ma jistgħux verament iscroll lejn il-lemin hawn.
żball huwa argument li qed mgħoddi lill din il-funzjoni anonima.
Din hija funzjoni anonimu.
Hija għandha l-ebda isem.
Iżda aħna qed taċċetta dawn it-tliet argumenti, data, rispons, u żball.
U huwa se jirritornaw null, hekk mhuwiex ser jirritornaw xejn.
U dan huwa l-kontenut ta 'dik il-funzjoni.
U allura għandna aċċess ġewwa li funzjoni għal kull wieħed minn dawn l-argumenti.
>> Allura huwa whirlwind tour tal-lingwa.
Imma nispera ma 'dan, nisperaw kif inti tieħu
ħarsa lejn uħud mill-tutorials speċifika għall-iżvilupp IOS ma Swift,
speċjalment jekk inti tmur biex Apple iżviluppatur web page--
li għandhom ħafna ta verament tajba tutorials biex tibda.
Iżda nisperaw biss f'din is-siegħa ta 'titkellem dwar il-sintassi stess tkun tat
inti biżżejjed biex tibda ma 'dak.
>> Aħna ser post kollha ta 'dan is-sors kodiċi fuq il-websajt seminar
aktar fis possibbli, u wkoll il-pjastri hekk ikollok referenza għal dawk kollha.
Iżda Xorti tajba ma 'proġetti tiegħek.
U nirringrazzjak kollha ħafna għall ġejjin.
>> [Applause]