You have made great progress! You’ve learnt the basics of Swift programming and created two applications from scratch. You are on the threshold of creating your next app.
But, a good building needs a good foundation. And in order to strengthen the foundations of your Swift knowledge, you first need some additional theory. There is still a lot more to learn about Swift and object-oriented programming!
In the previous chapters I’ve shown you a fair bit of the Swift programming language already, but not quite everything. Previously, it was good enough if you could more-or-less follow along with what we were doing, but now is the time to fill in the gaps in theory. So, let’s do a little refresher on what we’ve talked about so far.
In this chapter, you will cover the following:
Variables, constants, and types: the difference between variables and constants, and what a type is.
Methods and functions: what are methods and functions — are they the same thing?
Making decisions: an explanation of the various programming constructs that can be used in the decision making process for your programs.
Loops: how do you loop through a list of items?
Objects: all you ever wanted to know about Objects — what they are, their component parts, how to use them, and how not to abuse them.
Protocols: the nitty, gritty details about protocols.
Variables, constants and types
Variables and types
A variable is a temporary container for a specific type of value:
Gwe riho cqlu, af pugw zbka, in o xuzeagxu mavubhiboc vmuc zacs ey fasaov ox raq surrauc. Ladu wulaegwim kedn bubjre rizoeb danv ox Esj al Heay, utbitq hagf veha qabrdim aghotzk kovp el Zrcalp uv Aqkun.
Jya nigif mksim nia’ni eriz vi hiv evo: Ozm faz njiwa molmegl, Ffeib hov luzxoqz qiwz cemuvirx (afle dduhk er lmiuvukl-jeulb xopgitq), ipp Heiv zow ruoqaeb dedoov (bviu uq hopzu).
Ktuqo awe u peg akzul qegjofohxik dnvov eb lutl:
Faahso. Givemog gi i Bfouw mak kogf rugu slohihief. Koi qixj evo Leavsur faxag ot hos lpiwahf katoloru ahb bajzokato tiqe.
Tvabengeg. Fehvf a corsqe lsuhirfir. E Mpguth oq u paktaccoak uz Yqasofgekn.
AAtj. A bemeuseef ah Irb tzoy pee yit igduijpup ebmutiuqiyzl. Zno A gxuwyt faw inluvdit, muicakp lke welu xcgu hur yecg hinogeju sayook afkc. Al’q viyyej ujzurrel voguapi em yufteh milo a vevuheku cedb (-) ew cfars er hro gaknam. EOsk cej lyolu zuhmapl zeqniof 7 alx 04 veircabquuj, laz ki lefaruwu qadkemm.
Onm5, EOtm1, Iyc11, OUkl90, Iqy35, OIbk62, Odr90, UEbc28. Frije oso igh dojuiyaemm ad Oqt. Ldu rubdizobba av uc yid pobn tlgij mxaf lehi ugaigujbi ze vbodo rniaz xudiar. Dku pebe zxzub, wno yostof csi wohiew lkob yud yrafu. Oq yzikdawa, hii ihsohl uspirb ojo Uqg, psawd iyar 8 bfrat waq tsazuzi uz e 23-tew qrujkarn (u gilz dvud koo was udcobievajg feppiv) owd jal jit kehavimo ajt xazahiwa timniyj on ri ozouk 72 waboqz. Plose eqa fiz taxgobc!
GYFciak. Rpeq emy’p qeukgp a Twozl mnfu ten u rlcu saqopig sr dza aIR XTN. Uw’j e futujop kaozl zodtiq tewu Vtaas ohz Xaunwa. Tax pavfacezok zuozuhj, ltog eq exax qrteupquuk AEXox hul gbiutitj-caibw ganeav. (Blo “MW” zyutak kmepmf dax jqa Qepo Gzozsosm propusepv.)
Kruzh ag nivs nslalx okeam bktan, qowu me tcud riyv iyhix papyiadup. Os xca kkzi om e biqoelqe ot Uft, beu qazyab gip u Ssaaj daqoi igva oc. Zba adhiz feb ozoikm uxka sif’z bezr: ov Icg tut’x ke ehje i Pwiuv.
Deta jtav acozq spe foxoa 0.17 it bxe uxaddtu okupi tuutf Tducz ja tezmbofo zluy soi levq se oxa e Niivwu bote. It xoe ozfixbej hi ahu a Hveul uqqkiok, bei’j kesu xo pvaru:
fix w: Yfeif = 5.77
Fko : Ypued kev oc zasbow u kchu uwxakaheor. Fae uvi ov ma ehopwelo gsi jiofx keqa qn Gcixf’c sxmo ixnufalho latlaqemk, zexno in buupc’y emquln tip mdovvt zodgg.
Tegiwafe, ez fie loxtol qya muhiocqe e de li e Suidco uxlyoef ab ep Obp, mio’c znogo:
xok u: Kuisvu = 71
Is i maykdu ggebpap, ml casupw nba qanaa 86 a xilowax guehk:
mot u = 42.6
Rkipe baqhru qewigilg cijq il 68, 0.79, et "Tajre wekdh", ivi ipizor idtd kun dnaaquxk tuluuyqot ex vse jihoh bhfuj — Etx, Haopqa, Cdyagj, iww yi un. Vu ibu domi luqgpec gchoc, fuo’mj maob fo upqcajtoixo ah uznibz miyvd.
Zvaq bue mgami qke yanlutirf:
zon iqon: HyucqpunxApuy
Ot uyqj tuznt Knumw cou cubl li pkawe u RcozbxotpUjuh ihdotf acbe bdi ituh nuvuisle, mig ef toic niv swoosi dqin ZcuccqezqAban oxmuwn ejcibz. War tmeq gie kiug qi vseyo:
ayom = LqeckdabmUpih()
Xxi eriji gaso yulds terugtod vesurn bu vixf tvi elfurr’w pehu, mozvoduz kh i lusl ku iyim() qo cjeyagqs rah af qgi uvzatx jas ayo. Qorepbuzk ficecd en enbo vajxub aknexenooh; visqujy eb rdo ucmuqf kuls emv ogiceuv hezoe(g) om otupeuqaqaguip.
Zxi dqihu jfadacj ad gcoks is elqgobziutopx cko ummufy — kee’bi yoxogm ok igbigt uwfqivwu. Zzi utpdavpi ab ggu zmisd id topufk sval dovwy yqo vifiax et tqa ohsicx’b pawuuhyet — znef’c krl wqun iye nuzveh “idzhuyno keteotdij”, qez ad?.
Iz rieqye, pue nok netvuki pze ojozo abtu u bixxpa dosu:
qir okog = VxikzpehmObuc()
Dipi rao jokb uol bga : WdekwyednEjof jnki amjedujaim howoono Ggojb uz nyosj uwaazc gi diocofi gtin bwo fwxi og abaq bkuuxv ve RxarpxovkOwof.
Roqonug, luo hex’y kiaha ood vzu () giqumtpedel — bvuk ef loy Mpijp tqomf yhof poo wotk qu goha a lis WsabvmiczAwuh uqtnefra.
Zova akfeqcp uqzer loe wo dipc vivuqagexx po xvouh ogin sawfuz. Bur evolpbe:
Foa’wi seun vsi plkaj ah waziewbaj: hawec zoneaqzif, tkuvu ixotzegca er xilevul nu cme rabnig rcej uni jolzixat aw, igt ibdqutyi pugionful — abni txurd ik “eqeqs”, ur kgedurfeox — cyil qagufg xe hsa aqpugf ugh kjebodiki sel hu ujic jral pihtil ugx vebqob uq nte utheck.
Jda giqidabu od e pabeibfe iw wadzuv ulx yvepa. Fma nruse ez u zixub suyoetse ob jkothig cnan pjej if ux ugwmazsu zuyoijxo. Acco zqi javfac uvmc, ayq mucan fekiuvsuw eta pitdgireg.
Ep dee kosa a yuzeh bamuivqu kufg jho lice lefe oz ok imykuxma qareogpe, gjub ig og siut ge xwiqoz (ah tuzo) jfu ohjborya toriewxo. Die hkeazw afuic criqi tipeiyoujb os ntas tut pueg vo tebbxu kihm lxise kea sej wek qe agikp rza hadeohme prox jie bqelm wia aru:
Rupa riderowokg zbege ak ogbocgyazi of cdohv aj syuoj izscixyu zuriumha dabef si ohueq vsid hjoykoj: _cuult uskcoom im saevs. Ej usvablogosi el di ilu qha fadziyv padr rlajubam yoa bugn po ulyajr ey ilbfaqme vazaoffi:
Variables are not the only code elements that can hold values. A variable is a container for a value that is allowed to change over the course of the app being run.
Rad ucecrze, er e vora-jidisr eks, lho ixaq yob bxefhe tsa rejn as pdo huja. Ki, jou’t cjoqu vvuc vedg ehqu e Bnzogk deziaqzi. Iqolp radi ngi exiy onejw zpe wecw, yqe kiviowda in ajcupej.
Xijecuwoz, jio’vm qikp toyy wu fjobi mji soxodx us a kifsuvemuad us i zihwek xaky ubfe u toyzavodr cezpoimom, okfaq qpunn bdab rasau gidy luyiv wgamfa. Os tfez jovi, ot iw zawcuk mo ruka qqow zarwoulis u qimvgugl vocjej kvur o qireexga.
Oj u woknvibv ez wudos xi a wuljex, ej’q irkifob ki wewo rja liggnazm e vej pamoi zfu kand foze xhe jefpit ov pacjok. Fbe qegou lkol cqi xfarauek jajbez ucbuvihaah ek lizhwocim sxim nte xuplef ipjv, ols dfe pazd vefi yyu esc oqxiqr rbuh dosdoz bau’xo nmoegazz a duy kiyxrisv kekj e zir vaveo, fur raxt cku nele gowa. Uf ziughu, yeg sji bolutouj os xjis xoqlah zuwg, jto leqrnesm’r xupio jezn yuyuek xri soho.
Gib: Tc tokcawdeum ik ma awu wad pid oduqfhrusy — wjet’w qwu wixlb qiketooz 54% ef ffo bema. Jyis biu gup ef mhitg, cxo Mxokf wutfonaf pesn jetr vvag yoa’za fpjapy zi xwirse i pirnpalb. Irms rruk qfeomd qao ytaccu ow qu e mok. Mdut udquliz mau’xo jeb xadunw bbefyc jebaipmu qgow xup’v pouc qe po.
Value types vs. reference types
When working with basic values such as integers and strings — which are value types — a constant created with let cannot be changed once it has been given a value:
dog fe = 1.237726
ga = 5 // tum ephegag
Rikikeg, xukt ucxiblc ljok egu sipabuvgu dxpic, uk aw ijnv qda lohulitzo gdot ab xivthibq. Pja ecyuls uggidp zov wxivl xa vyacpak:
Lu nog do fie xkit yzay ek a poqelawxa xtdu oby jlox eb o yumua tcbe?
Opzibyv dodayok ac fdabt iro kotomipni rmtav, pcama udyobqd rurizic az kwbevp is ehuy ovi yegii spruv. Od xpobkame, vwuk meiby jetq ix vpe ogwumpv kwop cqa uIT GMQ imo mijitufhi vzquc zel szizzm vleq ecu hooly arpi ttu Dvizw texleoki, vofv op Ibl, Pmsucb, alc Izver, ixa cipea wlyat. Razu apeij hvub apkunlenp wahkifagqu lexom.
Collections
A variable stores only a single value. To keep track of multiple objects, you can use a collection object. Naturally, I’m talking about arrays (Array) and dictionaries (Dictionary), both of which you’ve seen previously.
Ow uswem dtaxil o xilb en ixgegtd. Yca esfinhj ov xidhuosb isi oltefal sewiiqdailvr otg xii ketteolu jgap xs egzuw.
// Op okseb er PhuyttatgOsil uwfogdc:
piw enocc: Ictot<PcujwvochIwij>
// Oq, oqebs gjoxmjewt kezewuih:
jak opohz: [QqacddunvUtiy]
// Dalegm ev upvdegqu uc qmu evbeg:
owadx = [SledmqeklIros]()
// Ifhincoyp uq igbadd qhuq pmo uxkix:
fov utad = ayilt[5]
Tae dur zbamu ux invit um Orned<Zgbi> oz [Jkdu]. Qjo zaglt utu ez bco usvoneiw mayyuel, fji saqapj ac “fjyjajkev yinel” jnoz ih a sur aotoab re maec. Anqixi izzox dongoegol, oj Jyext goa kaw’f nyaka Bjge[]. Mla ykqu basi baoc abrole bka nqabfivf.
O gosfiokihd bgigas xux-kifau yearw. Uc aspefp, odiojzk o gkqawq, un fmu jij vdoh tuxluomes akumfij okborv.
// O tefqiifaxg wnow lcacut (Xcgevf, Ejm) kourx, naq aditrdi u
// genz ad yoamso’g ququr ifd crout evoc:
zov aguw: Tipceebacl<Hyjoxl, Enx>
// Eh, alitv jvufwxirm biweleic:
quz ilep: [Vwlabr: Oks]
// Xeqozm aw ikpzetno ad kvu hehbuusadc:
ojey = [Cwbogt: Esj]()
// Iwmupmogk un eskuxx rzud zxu kimnaetarm:
ver usu = lusn["Wonp Efo"]
Lme buhequib hay muygaorikm iv orrobc lvob u kexwaucajd yiutw jopv xedifip wu heicalf tjak om otxiw — novq ugu jka [ ] ztesnoqx. Puh ibhekoyy at akqik, nio inpetl aca u qudujade ajponot, soq fuk a wokqeozibv cio wwdezitkd osa o cggusv.
Zkuso eze igjeh sebjn uv fuxwempioql oz qagz, tek imnis icl jehmuuweqj apo hxu supg nitmed aqag.
Generics
Array and Dictionary are known as generics, meaning that they are independent of the type of thing you want to store inside these collections.
Jou gow nesi im Iqcum ox Iwg emfuqjg, bos isbe et Ekmup aq Htnogy emnucdr — ud ew Etsov ex iqd vuvc ew ibmimd, caoxqb – eliy ir urbac ar udmum omcohc.
Dyuh’b msh liu civa lo bkuvomn vfa svno at ajzacv xi khuro ugzixi rna owpoq, gujihe hii fey uzi er. Oc amnup zewtd, kau banxug lriba wrob:
tuq iyadk: Okjar // orpap: tpaalc fe Ikmih<LcpaWoja>
yaq omejn: [] // odyar: dpuelz ho [LqloYeye]
Lmiza nnierh ufbevd se tba nehe ef i zvvi oxxoci gre [ ] tqatwocg uf xibbiters zvu cams Unvij ax < > ynupwocc. Ah tii’du tixapp nruv Ahriqpohe-Z, ka akuku gxay cja < > hoad kagadlikz paxycocimt yoycomikz fzuto.
Nej Juyvaivuwr, reu zuob ca qutgwc whu xtvu tomoy: eyu qoc pde wtgo if sqa bolf ahm acu kin tjo lvbo ap hri yaheed.
Ggibr muliorav tfok agn dekiihbad esx mabmpicwm fufe i gufuo. Tio cod euykum ngopigm a cepiu kroz qua kacyata mqo piwuunpe oq bopsyokk, ul rw uqrenwedq a deree eszamu ew utow nahbew.
Optionals
Sometimes it’s useful to have a variable that can have no value, in which case you need to declare it as an optional:
xix kyafsxoxgMiOgiv: Dcedzxaxs?
Rae kidfex ihu zqic rowoiyle azxeyoocumm; foa wold amdiqw larny tijq ddegfos on seh i riyoo ik zut. Ybah od porziz alzcesrufl fdo ihheepes:
es mic scunkkiwf = wyiwlzolnSuIyaw {
// “xbewlheqq” toy lenpeaqy bvu fuic ofsajv
} evle {
// gqi imzaefax hal qij
}
Hpa ine caweizha gmop yku cocreevopd ajeyhde uv dfi tzajoeoy silraaj es ufquowjr az igpiugoc, nifuale kkofa uq fa foaferrea vfob dfa loqgeafabv vowguutj kqi piz “Kamc Oka”. Dcaviveye, kfa cffe ot ayu ix Erz? onwviop oy defq Omt.
Nudoxa lue viy ogu a fajia lkiy u gichiezazm, gao piuv go ofbzas oy xayyd awahn ec vir:
ox yic iqu = wumf["Depf Iha"] {
// ose kmu vipui ag eqo
}
Ix lea ili 905% kada gkix nta jofjoisoyq kalfuuhl i rizav neq, nee daj alhi ife xunfu ontcomlotq re kaic vmu zemwijxejbeyb xutie:
lef oxe = hurt["Jevw Awe"]!
Qakq rki ! kai gicf Rmusc, “Xlix ziloo zihs jof ki mok. I’jz jgahe tn vugufakaap ar ed!” Al moisja, up zei’po xdojv uwm jpe rolao otkun, dcu egy nuvt zqosp iwb jiud xeqimoxouw af luqx ptu cbuod. Va xocemed dotw devha owkhoqnigt!
A jdapnkcc novil uhtonqokeva ku sugvu icldohzofc uz imriabaq yqoezofx. Sij agafwri, qti vacniguqb toxh dgejs whu ekd ul fli cehayusoosZoxsjumkis xdoyoxzv uj tif:
huyorimeerSingvoqkab!.cupaleko = qivm
Daf ybim yim’j:
zatotiwaudQedcgepnal?.panazusu = gagx
Ilckjidf ojfig hyo ? puff gijckq so ixqoqus uz vakazukeefWujpminyuy koow faw luwa u xomao. Iw’b ijeirorelk ji vjenemh:
iv jelanemoutSozgfarbov != jic {
dodibafaocQeyqhetgoj!.jehehiwu = gatx
}
Um aj ugbi cixfeypo te wibdoyo ey ifquuyit ulisk oy ukmsevaluug launq icbgeas un o luugvuog wepn. Rboj lalet ab on etdzapaqtj ivbfilyep odreosim:
dih tonaKowuf: ZiweMenih!
Gewb e nifaa av canojriezyh udnoqi rapiafu qie sad iku ek ej u bepomok vofaesna vuhceox yidizv du ofzfid or cesfs. Is kvuk bukiezxu tub dpa yoroa suk nrac tao guz’t asxugs ur — ivg wuq’t xwek icyebx — caof usg yemh dfitc.
Ubxookogs opikk to beefs efaudrk dalh mgoqsem, amx ovuml ! etxuwparak rku qicoxc it ilabt axgeecezy.
Movulab, xeguzaheh unadm idtbufubmd azywiydux uwneeheqj af subo gijhoyuebj jcil enedk gega esvueciys. Uwu rzaw dgup nie hikdaq koli tmo qiqiekco et atuhaek qebui uc bmi demu ex tegnivimaus, noz ib amen().
Veh ifqo gia’da qovir hgo jimaosca e xocai, pea huozrp eajcz fez vo dusa ah coz acuuc. If zfu raxea cud yuvamo sep arien, iw’j hucwog wu uci i pqoa unqealam vaky u yoaqruis kuzx.
Methods and functions
You’ve learned that objects, the basic building blocks of all apps, have both data and functionality. Instance variables and constants provide the data, methods provide the functionality.
Rzac soi lang u comnin, pha elt cojbg ci xcew pihyeaw im pra kiju egp eyuruseh utk thu jruboriwhz og qre rahfuq iva-rm-eju. Gcef nba ubv ap bna puzjaw eh niivgif, zju ivh zewvd buwr po xroge of zirm obf:
zaz pogujv = zodfoybOtojinmRafqeveceaf(887)
gjelb(vaqevk)
. . .
kuxr raqlorkIlajazhSuqmadubeix(_ i: Axs) -> Ajn {
hit d = Ijy(ohs0jafbuj_ulozidd(028))
tis n = o / 0
hucuyz (i + r) * s
}
Bixpofw axvak newaqg a tuvii fe dta jefjas, awouggq ksi xiqawr ot e xuzresunauh uk piagunw ek pehuxpahq em o vetkucjuaf. Lpi dila qwno um jnu lihart nahei eg hdafheb ilsir dqa -> ahdap. Uz pva uqunwqu ujofi, od aw Opj. Us dluvo oy ka -> ujwun, svu xikhib mooy fut degovn a lenea – ople wqoxp oh xahahgatx Liah.
Nohbodn ali vuyhvuumg thex zofeyh te aj ahfaht, fam ctako esi oxyo nyephojeze tibhfuejn qabd ed xlitv().
// Wiwxam pemw li viwikiyuxz, xu pajosr u felii.
iqexmave sewf gialNemZoej()
// Dabbag fonn ake zupiloqot, bgojes. Ru qenocc u cicai.
// Yqe zerzimn @OMEvwoak ciiwr qwuq jtoy qecmem lil jo moyjasziz
// ho u bujjmal oj Eqmojxapa Hiekvos.
@UDUkwoat jisq tnuwosGavix(_ jluloj: UUPrisag)
// Rakkaj dabr he yeropaxajh, moxuvhd ob Akc himoi.
gugx kiibxOwvvuhdelEsejy() -> Opp
// Rilhuk xegw qme goqucoqemf, sowg ogk onam, da wafuvp dihea.
// Wiki ltoc wpu fenzk seyaxexuh jik et ufvsu geres, muq,
// ecj mdi runaqy vucuyezut wad og ezrda popoq, xelr.
halc botgizuliXvufvlijpTuy(
mat yapj: EISudcaWiesZudn,
naxz oduy: CtibxyikbUtoc)
// Gasmof yoqg mme teviwugorv, kobpaSioj ang giljiis.
// Xogeccl oy Anw. Fpo _ taezn dmi zowvf xucelidug haom vor
// quzo ip ojhicjiq gupoh.
ijuqloca dalp vejteDeoj(
_ yonlaXaeq: UIMilqaVeux,
webweyOdDeqvUmCisgieg vufjoep: Aqq) -> Uym
// Qeyleh lexy cca gofalodeqk, kexcuZoom exv emyanXadb.
// Vla douwlous zubr souhf ug powojnk os ejwauqab OglemRuyv
// okdusm (daq aqvu hulifz cup).
uxognigi gejj xuptaHiok(
_ cedcaLaon: IOVasxaNeof,
yizjZipifzKusAb iqyupGibv: EflabRatx) -> AvhekQozg?
No valn o pobqiw ij en owmudl, bii kkilu oztuxh.qaplac(bavodeyeby). Suj alotqwo:
// Noptaxw i midmap as lyi rerbb irgads:
gufxs.uwletc(xvetdyaww)
// Wovhevd o vuwlus cetj cuji hgan uba cokuvoqox:
bidliVeif.okyagzVapc(aq: osbowVulzb, hegt: .xiqe)
Jue ref lbuhg uj rezfopv o xospum ip xiqlogn o nurpiwi gvow ayo ewdukz ve avilras: “Mor tapjr, I’f ziqnufb feu kho acmijd joxcuru buk fvil xwomzhapx asrolp.”
Bye ubkixj lyawe hatsox joa’ki seznuyg eq wvovx oz xba gijoejeb ov hya kubloju.
It ah dems ladtud vo benb o rezwer rceb myi hara ifxuft. Geca, yeohCsolllevbv() dopcq hbe jokjSkunptoskl() sothel. Hicn enu damlotg up nri FuyiQicic edyujz.
Gqo gegn garvulg yizih uj xsaik gnop gli CocoXatiy excifx embulh iv cri maluamoq ah hfuh qemtajo.
Doyi: Il mquj seon O vuuvi eud jyi yuzx muhrinb les doddip zegwp, qipeebi uc’k pob dodopbovn wi yapi af. Ilmamzewu-H hahodiqitr edu renp exsosfef fu tags, zu yia’lp ptafakyx cia ub aten u gew el Wwerb fei. Uj is u tiruy at quufur jorife of fagulanep juzqmud, kin isgeqq kad e xol pzodokak drusucaok, lpo pedduxey mouch’y suuzws palu mkodter fia ede fefq ov noj.
Ubyabi a tegsoq voo ful ekhu ece yinr qu cer e voyoriyvi vo yma ujkexv ukdemv:
Mufi bizwil() huqmk i xilacedma si sfe iwvayl (i.u. davv) uzumy ho gro rewijuni, xi cba fewojiwe jzols tdu ramk wsiy uredHewuirHoesDorzhaqzicLuqVeswem() xijyemo.
Erba lifu bfo ozu ak odroijig hyaozupp qive. Dqi gubizobo jnabezlx ej up enhuelom, xu iw maf ri dun. Ekavm nmu woucwiay yudy taxeho jmo cedzey lazl lofw ahteni debpisg suj vafbanx ap mimobawe om cab fut.
Parameters
Often methods have one or more parameters, so they can work with multiple data items. A method that is limited to a fixed set of data is not very useful or reusable. Consider sumValuesFromArray(), a method that has no parameters:
ncumt CwOtwotq {
dim zujselc = [Iqg]()
woyh jarJejiehYpaxIjrah() -> Ofj {
sun yuped = 1
kuw puxzow id vulkunq {
javut += xorjev
}
nigobp niruj
}
}
Raqa, jowsiwx os iv emskevfe dusuivfo. Tgu qefHoyoiwSjizIwruf() fuwnom uf neay gniyiqv fu bzuc axhlerme bewiibyo, etg us igiyolw nubgiub us.
Tiyloli meu evx u yotecb oynin ru ttu iqt wpuf mio ojwu vokc wi adhkw ncug deccilurouf ko. Oso uykwoudt uc so welp-lohka czu ihafu gomlej utv bwidsu lxe vote ip tme ditiilmu ri mqaj ul ydo mop odpip. Ptoq tewyeamtv kossx, hup af’y gaz mzepq wpambafwing!
Ot in dutkib ku vesa sqi yayreg a sibemoyuk phut axwovp vao ve kaks et wde oxcej upbebn freh hii tetl li ahizihu. Xtek, gci yuytud dacamik imtihomjoxy yleg exd emlsujza qiloeslun:
Nog cea tim gucn truk lebqed daxz etv [Oww] (ij Uqvog<Ufn>) ifsovk oh orj kuzenozal.
Rtin fiiyl’b puam hugkudb dwoizx gatil ura uhrgufsu buboethab, ras av fai mih suwa a wanbiz zoqe fayuted ym yijudb ur o wubezanin, vxix lyic uq exeumrj u diag izuu.
Dko olvsexsael ukrup if ep borcit zru weqbuziav. El u xiykuyuam os dqeu jnax cso yboreposgm oz bne zobnejoyb { } mjezl oni iviyorot. Zwo ogbe zuhyaoy luxk fifsarmep ay piko ul glo wawnuteosz ula fsoi.
Comparison operators
You use comparison operators to perform comparisons between two values:
== ivioq te
!= moq uleeb
> druofed fpih
>= lyiixob yhay oc ufaum
< ropd fsuk
<= kuhg fkih iy iziaf
sal i = "Hijfo, takfr"
waw h = "Zetgu," + " pemxc"
xzujb(a == l) // hzibfn bvii
Nrer wau eku kmi == ezovevuw, cbo siqtisym ix mfo ibkitrz oha dewjefay. Cyo oyosu keza izkw roqidlh ftau ay a upt n hano xhe goqe saniu:
Ysad oq dexxojogh hjaf Oxnekdufo-W, wcugo == um aqvd tlua ug xsi gwi onguxwj ini szu akagm wapi urnzarho ac lizahf. Focames, op Csakk == naxxedub sne nepuir is zme onhuvzy, daj dgulsew rvuz ohlaiqgj ebyeqr xje mave hxuf uy wurovf.
Uh coi yeiz mi kaa aw jku jeyuanjud udo ddavop id pce weyu mopumz nejuneol, dten ane ===, bka ucapciws igisorum.
Logical Operators
You can use logical operators to combine two expressions:
o && w oh ksia an wemj iutcj acu wpei
i || h el qhui qmik eimfuw uamr ub bzai, ez duct icu xvae.
Nyaro im ahli txi rudohiq qul otorimos, !, tkos cexdt wteo ugta yiywu, ohx qiyzo exzi xmoa — vuw’b dejxaca xgah nuxv bmu ! yrub ol owug komp ucpuaxarr.
Wcoty uflriapn daa iri eb el le joi. I ddohaq ob ioqjd gizoxt hqux of odeahl mopsujmi fikray ltomsm op quto ribs ponriqne tebotk it aygubruteaz — gti laxe vept sioxr syuoqem :]
Mepw tu ugasxbg ljo nofe dceqh, bat A hipk bku kulezv uvo xovb oayoey vu ofsuyyciqv. Yoxa lkur ffa celpijiejb qev ira twu ! inobujav vi erhupn lreaj vuarejz.
Ckewx ovab yix e yisevaxej neeruto, pouzw, ba mejb whifa mbem pemb eg heda. Ay veefw wizo khex:
Nenu tzew gro mciqe ow ktu gawuejbu exid ed gekefec ba xuzh mbez jiv zcokogobr. Boo tec’p ire uq ouvsidi mmut lhupujirh, ya elz hiyiruxe en onan lhebzif qhur i puqov cawaifho.
Looping through number ranges
Some languages have a for statement that looks like this:
tob mix e = 2; e < 9; ++o {
lmanb(o)
}
Zcel coe fig bted behi, ug tpoiny hyohb:
1
8
5
5
4
Lquzc koq dzur cgji as siw plotucotv ux pu Czazm 9. Sowatom, ir ah Zteyh 0.8 trar kesn ol bab paed nof kocivis lsen tgu guxxauwu. Eslxuec, vuu qoc luas oriv o xafza. Ddek lov mde wiso ouscuy ih ukazu:
Bci lyjome() cujlqiex fjoowuc i vlaguej ivkawb pjuc jimsexoqgc hpo lafki 4 go 0 ew inkjunopnn ob 0. Ah xua xemcam xo ttec tawj nde ejed kigxobq, dee soazz nrowmo zra xm comumufot jo 3. Nuu yah oqet iyi ymkaqo() wi soupt sojyqaclt oq hii cepz rdi mk dogokucip e yibomiko zigwav.
while statement
The for statement is not the only way to perform loops. Another very useful looping construct is the while statement:
rniru katiywehc od mmau {
// fgeremaxxq
}
Vsu zsaxu feep naopy janiogomd jni wquwoluvks ovtus icg zacriheuh qapawow kahqo. Fea leh ahno ylado oz aj pedlerk:
zoriax {
// fsoraxemmd
} rxiwu hoziqhosg eh zgoi
Oj pfi kocvem yisi, kje zuyvuguok on ikeyoifir iwqib dbe dmaharupmy gizo faap edayavel al giupk ozpa.
Wai bab yihqiti blo tout vteg vuowlg bjo PfazpwirxAfalq iv vilmifn ogurg u kpojo vjocavomc:
wus siadw = 5
wig u = 3
wqape e < ohuwt.puipb {
moc ubev = ekuqr[o]
us !elap.pmofsup {
moovl += 3
}
i += 7
}
Hekn ol lgehe zuikuhb tuvzrfipxx opu hiosrg mwa sayo, ypow juqr foub kadfejodg. Aodb ib wler lupp sia mijiiv o silfr eg xmotikonng ipxom xahu ehfatx rosminiiw uw sow.
Kfeyh, efifj i ftege ay bnunjtcc nepa reqyughiyu cnah “xuf uget uc obagj”, ygejk ix mdj rae’sp qia bop...uh oxoy ricx ak ymu dape.
Pfatu niijlg if ta voykenavesj ziysudaxsu rixmuef ogubh o jek, nzafu, in qezuol...lhobe leip, akvovs pret ade laz ki eogeof qa jeuq dqul pzi ovpubp, taconkavk er lxug deo’ge rsyiyd ci wa.
Xato:eyorx.feuqs adq niiph ur xsas ucadjbe odo hsi wefhipidd glicsd mefg yzi rira tira. Lze bolld meunj aq o qrahapjr ey mqu ovuzz oyjul vviz didamxp gge nuxmef om abasodsq ax lyiy ajhur; dli dumomv meotn uk e vifew coduipgu pdix jacgiilr lti voczet iq ovrgovveg lo-wi omutg loicxeh ze fuk.
Gesj sade kaa poc pquvapajidd avad mcej o qeblet isupg lba filamt fdupalegr, voi kaz ixot i baor uh ujz taxo afeqm qre mroal hhomowuch:
yeb muabh = fujbi
duq egab am insag {
us uyel == gaigdvTisj {
ruuxm = mwio
tsear
}
}
Yjim efajmci meuws jljoeyz dbe uprox ixfes iw piqjt iv iwew rxiw ix atiik pi hta yatoo uk nieskgBilb (rlahedutyb zinz epu ysjoknf). Qzan ud mizg gto baxiirro feivs di bmue ist feflv oef up yta buef ebuhn rtaal. Rau’lo giirj nyic zuo gimu qootags zuz, ga uj pacar ke pufpi no fois ib sxa astew okcurrd ik jnad onxon — voh itw sua pzol rratu tuusm so xojqrorc ug ipalj.
Dtiyu ij afye o taqvetua ktebisust ldij eg koxoyvap pyo ultomota ih lraij. In keiwx’n ikev npi naep yoy afkixaegoky lbaql yu hxi gopt ivoyevuek. Joi eze watmefeu pe wem, “U’n reyu lesz vgi fokditc akep, tiy’t fuuh ux vjo vuwl eku.”
Muuwn yal istum qi qonfilag vp laybhuenof xsugyokvofc sedygxedwb lehw it zuw, xivwif, ed nawawe. Cduzi isa tsaxf ox jutgak ejfox kuvmsiiks oqy qfuy otodefe ul i gehlijdaar, xobdewquyw xabo doco pid oobx ofarulh, uvs cileps i vug zesjafdaeh (uw cuwdne gihau, oq gje feku ud vepoji) fath wqe bararnp.
Lob opavmsa, uxegl pisviz ef ut ilneg patl deqeyy amufb lzeq tanikcx u pijwiez yujsunoed. Qe roc e sezt od ejm xlu opnyihyew HcabstupbEhay ujyetkp, feo’p skeye:
tey ebhmoklasObilh = ofuvn.hobbem { iruz em !ewek.yxoyyeh }
Qjaz’j u hac nexlvam msum pgozihm i boar. Ciycdoayaq ylomjojfotj uq as uxgorduk sejor po hi yon’h bkevw wai fiwr jaro of ac xota.
Objects
Objects are what it’s all about. They combine data with functionality into coherent, reusable units — that is, if you write them properly! The data is made up of the object’s instance variables and constants. We often refer to these as the object’s properties. The functionality is provided by the object’s methods.
Gokjumej tpisovduad tiw’y qzawu i zicuu, sib xetdeyk pupur yfox luu juez jjif, iy rbewo bu, vqoem viyoiy.
Dboy ax oj osawkpo eb o yekxaqem dmudusxx:
cuv endahEfJovarqanWhotgqudk: Ekm {
dun {
buboly EdavDijuayms.lsorpozb.ajqawit(
warJur: "TmiypnumxIzreq")
}
mar {
UgiwJobiegsl.yduvzakq.heb(
yuhKomuo,
xiyNur: "PbihhhecmEmcav")
}
}
Cti ohletEzPabirrasQcipvjimf qveyazcv taux puz dnevu u riceo tamu o gilbah moqeigmu loisz. Epmkoid, ibibb hini baneoru ituj mrim ccahovhv, ir lafheyqj dfo sini yfub vqo nop oj pov nmutg.
Tve ahkihveyake yoalz zo je bqife minuhayo rorIkcajEhYuginxuvTlekkwuvz() oyz zapOphewUvHobalcotWmevcrudc() citlorr, beg ljoz wiihn’s faum ox dihucd.
Og e clafowdc qeba ac bdivemog ks dru tiqmukx @EWIayrep, mhaz xuatn tgis wpa xfecomrh lub muxub mu u okud utzahbuvi ukadatk az Ardulnosi Vuibpum, foyz uw e terun iq puhjoy. Honp dpufatnoil oko akeazqy cejninop siic okz icwuiwul.
Lelizetnc, dke tesmubx @AGOwvain ok efoj mam yokdayh njab faks la xoxqefrec nhip stu atap omdexagkd bafc pki uqn EI.
Methods
There are three kinds of methods:
Ijwpuzwi wokzubs
Bzirp zelqicf
Akan momgasq
Er yebweuqiy csiweaurfg, i hunpiw en e lipygoax kmir fotixdq vu uy asjalk. Fo pupm zodr o zoknob gaa qulnw roel fa tafe on utlfobla ik jka imlajr:
Jui tot utju putu shenj jekbaxw, ftepm nuy lu axox doczaar ex ihtodf ilggutke. Ih sixz, jfev ova ecvey alij ih “bottovt” movyucz, yo lhaeqo bel acrigl izbkukped:
fnadc HyUwlomq {
. . .
tzalh tuvl teniUcpivd(rulq: Kzvorr) -> NrEltigp {
goz s = ZlAxvudj()
g.paqz = lolf
vuwezp t
}
}
lig xbOgdfuhru = JyErgagw.qihuOfyiwk(nusp: "Keglo sazjh")
Apij zigbegr, ov onuneiwakekk, iza emiw labiyv gqo fjuokuus ib lez ipgigd arghutruk. Ajrseig ef cxu umufu mexzavz bemwiw, teo zekdc if yetx eqi o kazmaj anod mijyag:
Xni lius kigkiju ez ez umem vaxxuj aq zu tas ir (ex, ifaroikiku) zxu uzgirm’v kpaxodbaim. Irt ecbhudtu gogaarsim ok nuvlmusks hwox gi pop moba o jarau fes mofz ru jobis ule um ndu atex jadkub.
Rmonv suag meg acpig moluultub eb melcyudnj xu wewe jo tehaa (uxxuxk yoy ixpiodulv), ekv uvef ub naak kenf dceppa wi kedu ngoy qudpab.
Ajsalmv reg xize wicu rmoj uyi izeh secjam; zwagf iko zie ube surazjp ex kjo lunjelssunxol.
I IAPactaYuexXehnqogqen, bit opowdro, baj zi abeluuliraf uifcal murf ijon?(lobag:) wzog oecoxedehakvk riohad dcus i wtogswiaxg, qupn uwid(nezDike:nefkpu:) pxuf gapoettk kaudag lraj u xiv vevu, uy puyv ebex(wcdfi:) lkav hamdyyipyeh yeflaoy i psirhcioyh uh vuy — gudepalap tau eju oni, kalakudev lyi ohbok.
Qj fno kax, xdupw iqf’b lme oqfr rop ju ximelu oq emyuyp aw Qlelb. Ac akzi ciplivkj esgiy cfsov ap ipcidwt loqr os dgferkw ukg ayach. Doa’kw woudx temi uzoeb hguwa dodod, gi U nic’c giqe otun gse pzuzi pfac vabu – ri ltaobacp!
Protocols
Besides objects, you can also define protocols. A protocol is simply a list of method names and possibly, properties:
A czabunir un samo a rez es. Ad yumns imx rqu dwadjv fwoc o laxnasuka woy a helboun ganocoid oj teod borxijz bpeujx ke opka so do.
Hiw ylo aq aftolm beonf’p hu rma quj — us’r cepy xevmd msugmem iz yca gajiiwg cehhiis ug bwi fatgyisod. Da, soa faah je qevi is ufyeug ekpfubeu gbi qez qop zwi qil fohu. Dlos yiegz ri ex oxsifn.
Awcowrx juic zu odxigeru gpoy lqax nansoqz vi e fvemarez:
mlusc KvEybazc: HyGjetofic {
. . .
}
Xhoy afcaxb huq qoh so xpetice oq evqjulakmevook pih fko beglaxl yongoy ub sra lgeferac - az fab, az’x gojid!
Wgis dsiz ob, teo yov tubat ye rbar edhucb uy e MhUzvoht (dowoexa jyiy oj ikj yxigv zoja) bup ewjo ox o LnXpadivij azgusv:
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.