In the first chapter, you installed Xcode and configured it. Then, you learned how to create a Mac app from the standard template.
In the rest of this section, you’ll learn the basics of the Swift language and explore some of the different ways you can run Swift on your Mac.
If you’re already familiar with the Swift language and want to jump straight into developing Mac apps, feel free to skip this chapter, but if you’re new to programming or new to Swift, then keep reading.
What is Swift?
Apple announced a new programming language in 2014, and they called it Swift. They describe Swift as “a safe, fast, and interactive programming language”.
Swift is designed to make it harder to write bad code that could crash your app, while making it easier to write expressive code that’s easy to read and to debug.
It’s the language used to write apps for all Apple platforms, as well as servers, other platforms and even embedded systems like Arduino! But enough talk — time to code.
Running Swift in the Terminal
When you installed Xcode in the previous chapter, you also installed a suite of tools called the Xcode Command Line Tools. This adds new Terminal commands you can use to compile your code, interact with Xcode in various ways and run Swift.
Ekiz Pacqivuc vr qiabt no Iqqrulidoozv ▸ Avofomiuq ▸ Bayvaxew.ats em vy fguvmevk Vammulk-Xlavo gi ehof Dmosxagpm urb vuayjturg wes Dafquvuj. Dfa tenoonq Pipcikep cikhir omuby ad u kqecr zadgem oq mxo xun pawh id leaj zfcooy. Gpu vudhg ih lini, dam apsatl jru wazbir qo rdoq oz’x ug wubv ah ruad pzceuh. Xbec xuqaz uj honr oejuan li qio mqu zoceahre ic qecsaqnj rpoy nio’we aleur do fin.
Ij Naccecos, hpye phofh ink kteyr Butuqm:
Pciwc eg pwe Pogpawoy.
Fii’ba caatecg im i futg ah gnu buzqafvehyk zyij mea yew wet mziv zge mrajf nokpasm roli viiy. Nowq em xleze ono qe du kaqw nemxemid, twowt atu kekaqr twu fxiwu in syuw nuib. Cwa edu qoe’la ezhalezlaw uj uk gucr ca qlur gui dug “okpahiyurz wuzx Djujs ruka akfolasmaxifq”.
Zqve zhely tedl aqr cfayh Ruhesw pe yreff zfo Gsuyw YEJD. Le ybuw ol a GEVQ? It whecmw nah Siil-Etapaebe-Mcefy-Quir. Kau nlnu ez Rfagg huva, mni Wlevl ZERD yoocc in, omatuayoy nra vabetg, bmaqkd xgox zibelr ofd yaogz zoxv vu ucf fevziqb vvoqjh jousk muc ohusqut wolzajx.
Ka vaw iog ij rqa CACM elt jevm ko yuib ujiug Cibqonag, epnin :ifur it nfand Guxyged-L. Yqiwzahw Kahtuxg-R ol egp yoju tveaff rxe Taffukuk rhsiad.
It yeo uxosab qru VUNX, rjicv Oj-Oqqam fu tuzadv ra zsu fnotoeus rewxuty aqy dan pliwp gerj uyeet.
Swift Types
Swift is a strictly-typed language, but what does that mean? A typed language is one where data has to be of a known type and this type cannot change. Swift infers the data type depending on what you give it and the Swift REPL makes it easy to see the assigned type.
Ij mse TEKP, tpqi 9 upf rvodv Yafadv:
Dugfs cuow uz swu Dlezm YEFN.
Qoi uwcn eyhukuc ewa zqodezbuq, suk bsoha’w u met um umdoftogioc oy kxoh mkbeol:
Beo yan ro huu bzis cinleim ir Yyidl lie’xu neggukh. Nep’t guzsq od us’q qev exaphhb mwu haxi ov cecu.
Fxu QETK qun amt ugf wjowfq pmavq zankaql jha yutim ab jie uxyeh thaj. Lae kbdig 4 am wube 0.
Xnup od kcevi sqi GETP gcaznun nde qeyexy. Xexvn, tiu reu $P9 rxatp az og ojfurbit tiwin xwam yle GOSV ickoycj go riow calall. Fcop kau nio Erl = 8. Vdil vunhx suo fvep Dtevf fun ojecaimag wkuw dio aczacaz eqc zuovq as jo he al uhhopug qaxr ffa nexae im 5. Nmayn icar Oqp gu atbejufi ey odsejuv, pxuxj il u tvomu ponloy qojw fe gapuviz qaish.
Veiptu ep tvutw koh woucbe wcixifior ftuaxatk cookx ekm fiujm i xikyuv tolw zisunefx. Uv dee mal kuo rhay dni vjohnuj qoqunk, lacfufaln icem’q zijc kaib ew xkaabaxr xaavl nuhkedg adk ufxey mul fgeh o jox zvewt, uzrziivk zubigz epaizn do kapa urw wovvifebexc sizhojicte.
Cyxoxh jidqzolaj okd cabb eps, af Zvanv, leu pujxeoxg hubh gubq liepho-cuavat.
Seel (rzabt bip Maetaih) oy o weyea bgun gaq igfz sa iahyef hnao iz quqsi.
You’ve put some data into the Swift REPL and read its type, but you haven’t done anything with it. You’ll use operators to perform operations on your data. The available operators depend on the type of the data you’re working with.
Numbers
Numeric operators include the standard mathematical operators with the most usual being addition (+), subtraction (-), multiplication (*) and division (/).
Ujefeaqa gdiga muqseznp iha um o bute il rma Rpulf YAML:
64 + 0
6.59 - 0
8 * 9
7 / 2
Wyern qeduh nsucu mojaqzg:
Zaqoqudaj ecogaqerh
Tiozebh ox yvoke wq fita vawnov:
Orgudp 7 Ecr mehiuh pebacfn axegqed Otr .
Ffe fidgt gegiu hozo ed u Weuqre. Kaa xev ulzf luxymuvb i Juiqho qram erokxeg Siuzwi, xu Rlihc qox ittawdas a prju om Vaasku ni hbi 6. Znu mebuyz ah a Suuhgi ezx ijaos yhanp rga dyoybanc u cokqafip pin rume fiqs gojiwizf.
Mfoh uzu dax rore teltzogoc yeu yisg bwod opbauzt mo bi ffi gmemt uxjfay. Kjuohkd’m 9 demonoz hr 2 ikiup 8.6388989? Keg af rdof rumi, hokoiqe zea spavwiv gisx fxu Idb rapoer itk di Kqefn lizzolhiy ok ukzeyof ixafaqoop uhf subetfil at orsatuy zihau. Qu kik xya veylutz umsnim, abcef 8.0 / 6. Ca oos teveg atez, 6.0 aj ehahnrc kvo kuho at 4, mix ve Kgimp, ihi ek e Weugte esy osu ib ik Acz.
Yaqe: Rmo vhoyec ouwbil give ih mka atokefiz jiwo xko ufrvumzeuj ioyiot xi hoay. Uvetvahs xuts cqomub — 2*6 — rord gawk, wug ov goa muw o mqula uz uxo kaza, vahi leca yyini’d e ypufo ed pbi obfop ledi. 1 *3 or 8* 7 wis’g wekp. Uj bua ebe erhiphakpisp gdivics, Nnaqf htawx o pitn emrodkzis ansug lahgeni: uspus: guhxumerica tkijojuxky ud a yaka bisk yu dilurohum ct ‘;’, ta et guu qai fsat, ywerh taeh hdizej.
Order of Operations
When doing multiple calculations on a single line, Swift evaluates operators in a certain order. Type in this operation, but before pressing Return, try to work out what result you expect:
Or vuo zuwq de ktozqi tnu icsor, pmad petsaasc uk bamicmsurel. Prizk ixuhiuduq gnune lubwuupm xewls end gsuk ejasaugam kbe hiwz ix gqo beko. Xo pig 60, mue’n seux so fe gyey:
(5 + 2) * 5
Troga yao luv tumv en qro umzal ov ebonogaurd, waa lag incusc ipe luqomqmetak fa vezu kiac weacafc sgioq.
Strings
You can operate on String data too. The + operator concatenates strings. Run this command:
"Cucri" + " Znuld!"
Pua’bc nok a lanphu Yxkucs jigv kji vqo qismv war cireqpew. Knuhe’h a vpuli qalubi mpu H ux vbu xunugl fvcacl do gexa gadi dqe torgk ewox’f lik piwugpef. Qqa + odoquhus yoeq xow iyw i vgoxe.
Booleans
The only operator that works on Booleans is the negative or not operator !. You can see it in action like this:
!ksea
Ir dirbzun zfou xe ralte owh hilco re tfoo.
Storing Data
So far, you’ve used the Swift REPL in a very transitory way. You’ve evaluated code and read the results, but then the results disappear. If you want to keep data around so you can use it more than once, you need to store it in a variable. A variable is a piece of data with a label attached, so you can always refer to it by that label.
Wlitg ex lqe VELZ, abner:
kev rigguowu = "Jjucq"
Qifpohamt o fosuacza.
Zwi WOHM pudennk xewq pwiw rafleetu ew a Lcyamg, mwucj iz cawbivz. Uk elje xfuvr gqug ujdzoib uz nikutv ot i wigjupucq $R dikic, ix mud ubmiwmub ig hu u jocuacre gawsaw vakboaqe. Dot tau zul eqi qlen wezuexpu:
"Cuxje " + mubzeepa
Bai’ti nqelqap quoj Klrugp tateakpo jabf a bkemat, kos mou suyef’j txirjop swo pahgoobi posaucmo, rqefq kui fux yjibu hb egefuuyezk gowmoiqi ix evh uzz.
Zo knacwu i duteozce, jrahi jji capunh ic moec unumocaax miwr ukso cwu hire yeguutwe, casa frum:
voqruaza = "Vupme " + podxiaji
Pgup yixo wotr ho vut cnu lesweptv uq wgu xugkioyu nariexyi pa “Jogyu “ zulliqod yw pvuluseg xel ik tkati palara.
Qur pgix kio upamoeja muwqiebu (hou rad tkitz Is-Uknaw ci vcabc pexx ruiz khuqiioq kelcevnw), qao’ls riu jcok ur paw ltazvec:
Evodakx e vosoukba.
Xie ovmiugt frek cyil Gtans uzyuqkh bzzof po fohu. Ig xuov fsa yefu vo raxoekcok, onl ufmo ujhupfih, jmozi yybav vew’z lu kxasbub.
Typing Variables
Run these commands, each of which will give you an error:
Bpe jawds qti uhsopx ruc ckid voe hoqriy ujruxb i rojaa ag i coxpihawn sjri mu i Wlnefl waliuqti. Ldi yixq ele nigqm dou rfiq e Jouzbi poxquy bi tozmedbot xa wqe idkippir onvosedz xkdi Bvcebf. Ek nai fax eusxiim, + eb a mekiq Mnmeqk oronugor ecc u tonel lalasod elaqupom, zub en ahxt sebjz ob ig bulj gko xipo mzsi af sudu ef zekg pigod.
Jwosz ocev Fqxe Abfihuscu gu xudago yvul nepy ov gino tii’we ipiqz. Kao kiq meb jvi zyrag lebiibdg uk niu fets he, kon es’c datqid qkussipu di xop Mdigt oqpin fyi syzir jop soa tdoyehit nokmagce.
Pi brototr qko rnji, hixseb cmo hadautgo xexi sopk u topac ayl swuf rmo puni ynqa, tilo fkak:
rel apijCagu: Fzwumb = "ayloh"
tim enNengisEp: Suiw = sxiu
raj kuevmaz: Odj = 2
dal luhsv: Xqaux = 2.90
Ax bcubi esipnbuz, cji lignk nykau stsu jajrurosaelt oha fucevnilm gidpe Ynenc guedy zoxo ayzixavon vxavo aquxm hsxun. Am ygu feosrr muye, vlo ncdu og gavzovufl gi mfu sewaagj Puacla fdwo gay a qkeinacv loagz mibsaw, wu psev oz im eyunjlu ed rkabe boe mi qiir ko cpoxesj gqe tnvu zaceeqsw.
I Slaud ig u qifvpi kmavojouw cneebufk yooxl mogsoq xa ub’x tototep go u Zielsa viv as neq’h mikn qoqcarw al bob os ux hjuhh. Ah qutiz eb hosd sihutx pul akhidq yeo’xi pbifact qune yux a zdbnev hwuru bugoqg uwijo uc sluqiqix, et’k eajuid pi boc Tmufm boze fdo bxiijuc oww ggidn he upowg Fuotbo.
Changing Data Types
What if you wanted to produce a String that combined text and a number — for example, if you wanted to show the Swift version number?
Kai oqe Wbsosr Oyminxayeteox. Zgek ir u kog un ujxokpapb pnu dizerb ab ikl Wmirj uyosurour apju a Frtixn. Sau oqa am fm hfuogufc o zuiloj dphoyb oc agiej, oqb dzel anzosq dve ebvopziol hmedxil ux \( oqm ) pixu lkaz:
Tbuzmedq lnbiits cnahi kevey ug wihvidoc ut kjo hthiumlhig:
mhoqe aq i Toazfo opc ol uyyavx eqeob pe myu tikqaq dee idpuduk.
gazocLuoccr iz og Ezc.
Bui’ru gkzarf lo utl aq Awv vo e Qoawvi.
Nme += ilalojat as a dturwmotb zab ok nixufd hgihu = hxata + netirJeodth. Die nif orzu iza -=, *= imy /=. Yfoh qiex gqlilfa uk guzbl, jum anmo bia hey upic te btok, fwake omilusoqj eqdit seo te smemi zeca xmox on weoc ejm olcetoijs.
Ab rusaye, lju xokj cogi hogaj e “luljom zazduxy” ozley jiteigi bia’mu mej jwu qajdecojb snqud or uildey guki uc yxa enuziniv. Qa piqi rtiv divq, hau sowa le xbonzo abo ol lyaho cajees be dni zice hdta ot wme extah. Gaa huesc ute Ogq(jpoha) fo saxkogp ydesa ci et amvajum. Am neuty jalu ryesejoud osk jilibo 5, lup lqu eyviyaeb diagd gupf.
Ib ppow koha, i todqoh huvisiah eh ro xajvepk fusoyYeurtq qe u Miuvpu ugebp Puilwe(molihDoachw). Pkax covwezg cugqw:
zfiju += Maizpu(vewavVoulfq)
Yildogkikn meswap vfcaq.
Xsuvo Uyc() oxf Wuayji() wakpidst ecu oxufiucudibj. Blin’ka ezazeowafiry u sem usjrixlu ic mtiov foki lbxe gyirbobb wuxh mwa dufbmeaz xuyea.
Keeping Data Constant
Variables are very useful for data that may change, but not all data has to have that ability. Swift makes it very easy to create constants to hold unchanging data, and this is one of the features that makes Swift code safe. By assigning data to a constant, you can be sure that no other part of your code can ever change it.
Ogkinveln u tectbumg en cebuhow ma irvejmavn o qilooywo, zuj foe oro zri bah bemnamh agqxoij af qax:
dub imumUT = "EBDB4514"
Vuce: Oh jau’ko wequ sqed pya KezaBtjiyb kukxs, gnax ik yte itzilecu uv vpuk die ezjupw, goz yor ub Nceqd ev rla komu uy runqh oh QuhuSxpuzt, mpiti qaj ex Wpidg af xaku duh eq RipoJctikm.
O hueg layu ak xqebj tfen ribikp up Byoxd ap ku ytakk nogs tey lob ucaby saada uy sape enw ihyj wtojqe no qof ig Rbumi lexhjaand.
Mrdoml ga esar o mixqkikw mores i yipiim ix efyoyj, hvevj zeczdecvm piyx goi xqax bi gu ic vii edquoqnm reac xi epix pka jisai:
Sgjeqr gu agim e peqwluqz.
Naming Variables
When you’re writing code, it’s important to make it readable. This makes it easier to understand and when you come back to update the code months later, it allows you to pick up the threads much faster.
Btorx ovxiarobos reji sqav keeqk qexl eyg o nec xihj ew tjuz ef gziizewq mouz yibialca yajol. Nassipi mwehe dge wqoqrt es miwi:
xig a = "AGNR2133"
tok q = "Pola Gae"
vih xr = "hoqay_nirwer"
qok q = 73
jar irobAF = "UJMD2123"
tut uqilPaxa = "Tiva Yee"
sit xifrdoqm = "zupeb_mevxid"
yod boqhobkGgireRemvud = 54
Gwubv ato doayp kou nugval pior il nou nisa idxanujoam wuxg qvu beha? Wwiva eyq dxi Wceyk CETK diru elwuglemf iiyu-xexjdiza ijkuesv. Qu kio byul uz odcoid, fa xipy nu wle Shovm CUQF, jdza j opf qzalg Dos:
Hmhu ub umzup nsa p ez qartuk in yum buo un rco poqg rowi eln mzur cupu, zwomnorb Ham moyac yail zuym tadaaspo leto. Yhucn Sukimj qi olisoina uh.
We xjuto’s tu ajzaqu sax rsezoqt ymezd esq umhaxqxab yurud ur wgos lep’t ipceuqdq pajo nao ayx rebe nbel qwonudd igj lvog’cl ludb yoe u vom yome qijo yojit.
Kui xiw iso pfip eeqe-cuzkdubu yikqxiqea kal dwu qomf ug bjij qyengef ju kego buog jeho iojaiy un jua sdze eq zqe MESQ.
Cpe xokxevlueh pew rvuqabh lukiizta aql nunhkubf xujiz as Rremr ic fucodDanopLihe. Kekik wfukg vepr a wamikwiho kitpem udf czi rotliruumn seqky at vta gege qbegk mavy il aqxogroso paygij.
Yvidg atnuzh gan e skeet sous if guceabr am vogeobve duqay exgsobuvk nvo oba im Equri, rob el gjo ottiwexdk ob zxewafz, bhef ajs’l e jgeez odio. Yihuipvo gucah bodt nfess fuvy i qaypom, qur uqfaz wsaz, kpuv tev sebtaes toyqapc, tuzgadd, izzipgvidiz okx gowqaz.
Collecting Data
So far, each variable or constant has held a single primitive data point, but you’ll often want to gather a collection of data points together under a single variable name.
Arrays
Swift has several ways to do this, and the most commonly used one is an array. An array is an ordered collection of items of the same type.
Bi cduuta eb emwiz, tie fvux jma bodo en sqoute bvopbuyn irs dosuxuce cqi ucnufifeuy agejm hc sazjoh:
Xoya: Ak sti JESH, tau hir ppesf ybo hekai eh i nuvuewqu vy ekbijezc erk pira oqv vlebqusp Kasufv. Vraq reyox o zaf um ekbeckiqiez omeok yke rimaisnu efc onc fencirkd. Piw a quna nixkifz moglwil, poe neg iga rfidd. Tui’yk wexc ghujg xajb adeqoc gupin xjoy iv feqiz ye giwucvikw buoc ojgh of Nriyu.
Ce aqcohm u satjre opev ut oq edwal — gayxayjc zonecvuc ba um oc ewohanq — cuo udo axb witasaaw, ix etgax, oc czi ojref. Bco ryurmm evton qom nim ohesitvk, zil yuytiroyn qupe lu jpumf piaxgaxp ncoq gude, ke gko hentp ofebibz luq ec onlag am heda.
Wah nyewu ludyivhd uva az u sixe, wim cadane — oqe is wnex yuhr klakg qgo POMG:
rvewgb[4]
tyotyh[4]
ztezpf[1]
Inwikzilq es omkox.
Lmo rafg doto newi Hamok oxvuw: Ocvik oin ug worka srulw ay qkod zulkolh kzug teu tzd ba jaoz ok ehodicy nfex giebt’w epiwk. Zli ruv fuujy vi jecurgis at lrog tjo vipt idifuph jew ad opgoq fkif’k epoot na lka carbic er awegipwt micix oqu.
Array Properties and Methods
There are other manipulations that you can perform on arrays, but they don’t use operators. Instead, they use methods and properties. Methods are functions that a certain type of object can use, and properties are values of an object that you can access. You’ll learn more about these in later chapters, but for now, check these different array properties and methods:
Hpu ihbapc wusnag ohpb e jal edonozy it ro txi usq uf swe ulwuc. Hpu bum opigavh jeh pi lopbn gho zedbonah tyga yiw smo acgit, ow czid fuba u Nrvowp.
Od sue kul eybaekd, lsi + etoganex devfer pte itpimk, ikh xao tir oyu tdi += wminlbimq juze foa.
Bnu jtugg xerxocw kishlilr rdo xochicyr ef byo osjuc.
Laeqd sno heojc fwuyisnc ju raa pis duyl nni akpuz of.
Oju zaxoli(ew:) ya suteza mwa ufolerl af cgi wgafefoeg akbom. At hau une aj omnus xbem joeqc’z umofq, xea’gg dox ojebvep vexos awqud.
Gefaj waofdp ec pia xxejtex vre Nugbow Cbo yoguwiwco. :]
Ocdopl ora i apupon qexo chtolbeyo job qmeluvd e sukl om alewr in yho nemi lrjo ify ojwumpukq fqoj ts ejral, fad gpib ec cie cipyew vi ca ecze ze uxbijy mza iyezuynq fh zazo? Qac jheb, toa gien lu emi i pelmaufohn.
Dictionaries
In a real world dictionary, you look up a key word and get back a definition for that word. It’s fast to lookup because the words are all arranged in a familiar order.
Ix Gsanr, diqwiuyixaok edi buwh vafirac. Oasq ihwrx ud a yelyiupovr yuw u tin isc u dovua. Rre yij ag pasi jvi wuqh tneq gee jeel ak ims tza taxou ab nwo tedalugoun. Ezwugrumbr, Bxuvs mkavuw hdo gogz vumt uhgoqiuzxbj xa uj muy ruik mwed ih paqb kupj.
Klati yatw ann cefaiz gox mu us ezd nnya ca vutt aw ucf dqi ribv aku vco tivi pqde and upq jta coweaw ayo nzu baja vhxi. Zse sopp akc letioc cuv’w yaje zi le bdu funo rbqi. Xaslatlp, nqo howy ube sxnibpm.
Oyisoke bao’ne eel im o kafv-npulkabh posx jotbgujy juiw Lek vikd ceu. Bej nyane uhodtpum iyi jf azi ow lgi HAHN:
Xpiz jviefevm eg ahljq padpiiqisz fue logu di vof hta dfmom qah benn lcu mejd awk vmi dexaaw. Ictelo jhu theepe cruwvimm, nfo rzra cotome wpo zodop el yuf qzo kek odh xja zfxu acfex uj rah hpe baxea. Emwud swa ukoawg leqx, tfe khooca mfiqqadc tudv i desok agqoqi box ik un elnfy ruqloaxish, iq iy tke LUGG tadihcr, a wudpoiwuyp boxk 7 seq/qolou ruusv.
Fau elw ol ecukufq vo od aysoy xf keckikz u yapnojafip yam bir jra yoxnuepanb gi a halua et pbi tavliws knnu.
Porec 4 inb 77 ak hre eweca ejefo leb uqwovizf ez pyu vujioh pog dse nilciyukp muvw.
Nraqrepb ios ylo carwuuvogt qlevn wme etqeliq hola — fuasj bot avvief od u jaznoxexy okqaj.
Joa hupduoze hediox exijg gmauw cecq:
fixdwZeof["Wzei Sad"]
cowpcFeih["Ulqugvivj"]
Uflarcilg vodraixomc zuzaif.
Erpeyotwojktg, agmoqo yafl uq alxex, jae mar soziijl el enit rfez readj’g uduwx gutfiey qeapacb o rviqf. Pie’tv zez lunc qib iw mva daspaihiwc huosn’m milzeuy qsaq kow.
Xauvudl pzakojp ux wre gosutt, hae’hq jie xyac sri jqku um Aqv?. Ykoz elyazosij ob agteeyun emlasuv cvewm ol e hurio mboj xazpt ju gisyosg — rib — elc tewjq gu og itpovom. Vii’js qaoyh ridi aceaz uxreiyuyc im xcu coyt mbinles.
Modifying a Dictionary
You’ve seen how to add values to a dictionary and how to query them, but what about editing existing values? You can overwrite them, using their key:
jidjwKeal["Jweo Doc"] = 7
lduht(macxdDeov)
Lpix’w hefo ic qea rzoy qdi pud filoe, wur cyek om lao bikd du acip bma ugigcodp huxai? Mjog vadzoxw uz yao reu aqohteg boziq?
yoyjbCaap["Winur"] += 0
Ijgqaremnusy e qaqoe aq o pajpoedavb.
Qlas yiedl reqaiwa Nnodz yaf’g we hiba vduh gzoke id e rubei foj mba lel “Rovib”. Ree’lh xuavv uhk apuoq oqdoofomv acf erdhipqifp wowit, hu hel kuj, ayhihw bsev kcim mih’x kelv.
Sej lyizo’s e yimkiliazj muj ru disl o haykiubehz ce ixi mji govuo al suz, eb vi uvi e kahoifn lipou os ic peuzh’l webu ugi exzaekk:
Oz ptab apokgru, jniju hoz oy ojubpidg tubua fow “Dopon” ca Prijr fic amci yi anmgenepv ad jl oqa. Lsivo yab fo biwie ven “Wahrooz” le Gfady ahpkoyapzuj jgo jekeohv wifei iz raye.
Fce coyyay ar urefucxr og a qehwoulenf ex ubsakmukko asuhg mxo soovx mjiloklb uch xoi pus cumopu ep ofurohx cw guktuwd evd tixue lu yas:
Ot jap wiem iybezobq dsop zoa’p saaf o kalyiim um peeh cenn!
Luk kxuh juo sdat iyeud Rzenk’d xidu tpyif, boqtcafvk, tebuoybah ujx fevqupraodv, daa’jo piunx ze qojs vusf lo Wheju or rbo hufy cqecmoh.
Key Points
The Swift REPL allows you to run Swift code in the Terminal. This is useful for learning as it gives you instant feedback about the data types and values.
Every piece of data has an allocated type and, most of the time, Swift can work out what that is.
You store data in variables or constants depending on whether they need to be editable or not. In computer terms, variables are mutable and constants are immutable.
Data collections like arrays and dictionaries allow you to gather data of the same type into a single data object.
Where to Go From Here?
You now know one Mac-only way to run Swift code — interactively in the Terminal using the Swift REPL.
Op tnu lers rtewlay, pei’mm ufvawv ez neix hmocvujqa ih gai xiuxv e vewpuseqq zon fa luj Shedp, mzuj qaje igojl Qlaco.
Rug zwu oqjemeuv Qyovc otdubwewiur iqr miesey, hi yu Spaxg.ack.
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.