>> [MUSIC PLAYING]
>> DAN AMRMENDARIZ: Hər kəs, CS50 seminara salamlayıram,
Swift ilə iOS App Development.
Mən Dan Armendariz oldum və bir hoca edirəm burada Harvard informatika.
>> Və növbəti saat olacaq qədər məhsullarının bir qasırğa tur
bu mövzu haqqında biz uyğun bilər.
Mən mənbə kodu bütün göndərmək olacaq Siz online Bu gün görəcəksiniz ki.
Biz ola bilər həqiqətən hər şeyə getmək
Mən deyiləm ki, edirəm ki, Bu saat göstərən.
Amma ən azı inşallah vasitəsilə mənbə kodu şərh,
Siz anlamaq üçün cəhd edə bilərsiniz nə məhz bu şeylər üçün baş
biz olduqca almaq deyil ki.
>> Ümumi, strukturu aşağıdakı kimi bugünkü müzakirəsi olacaq.
Biz bəzi əsas bunu başlamaq lazımdır Swift dili ilə syntax,
daha inkişaf etmiş bəzi gedən Swift dilinin sintaksis.
Dil Çünki həqiqətən müasir və edir
yüksək səviyyədə bir çox var xüsusiyyətləri, biz var şeyi
, CS50 ərzində C görüldü və ya hətta bəzi digər dillərdə
biz açılmış etdik ki, kimi PHP CS50 istifadə edərək,
mən üçün cəhd etmək lazımdır gedirəm bəzi mövzular təqdim ki,
yüksək səviyyədə dillərə bağlı Siz CS50 dərinliyi görmək deyil ki,
amma sonra görəcəksiniz informatika dərsləri.
Belə ki, bir olacaq sıx saat dolu.
Və mənə bildirin çekinmeyin Əgər hər hansı bir sualınız varsa, bilirik.
Əgər istəyirsinizsə Belə ki, inkişaf etməkdə
Swift, və ya, həqiqətən, Hər hansı bir iOS app inkişaf,
tələblərinin bir neçə var.
İlk növbədə, siz istifadə etmək lazımdır Mac, nümunələri çalışan
biz bu gün istifadə edir ki, OS nisbətən yeni versiyası
Bu halda X. mən X 10.5 çalışan alıram.
Əgər siz 10.11 çalışan bilər.
Amma hər şey olacaq ki, sonra Xcode 7 və cəlb görürük,
olan son versiyası var Swift 2.0 Swift edir.
Bu, həqiqətən, olduqca deyil əhəmiyyətli fərq.
Sintaksis bir çox var olduqca əhəmiyyətli dərəcədə dəyişib
Swift 1.0 bəzi hallarda, Ötən il azad edilib,
Swift 2.0, olan yalnız bu payız çıxdı.
Beləliklə, biz Swift 2.0 göstərmək olacaq.
Çox şey ki, Siz online axtarış
əlavə almaq üçün çalışdığınız zaman şeyi bir sıra haqqında məlumat
Siz açıq-aydın edə bilərsiniz Swift 2 üçün axtarış
deyil, yalnız düz köhnə Swift çox etmək Siz syntax doğru almaq əmin olun.
>> Əslində, bu, ümumiyyətlə doğrudur.
Inkişaf sürətli məbləği var Swift dilində baş
Apple azad beri, mən hesab edirəm nə, bir il ərzində bir az olmuşdur
indi.
Və hər şeyi dəyişdi dramatik o zaman.
Və belə incidir etməyin əgər, siz ətrafında axtarır etdiyiniz zaman
necə yerinə yetirmək üçün Swift və ya mövzular üçün bir misal kodu istifadə edərək, bir şey
və ya bir şey deyil ki, həqiqətən Swift 2.0 üzərində işləyirik.
Siz axtarır etmək xüsusilə versiyası üçün
müxtəlif təsiri minimuma endirmək üçün cəhd versiyasını və hər şeyi bu cür.
>> Mən yalnız bir şeyi qeyd etmək cəhd edəcəyik eski versiyasını fərqli olduqlarını bildirib.
Amma bu üçün izləmək üçün bir şey var.
Bu yəqin ki, olacaq ən böyük baş ağrısı bir
Siz Swift ilə olacaq tapmaq olunur ki, , hətta yalnız köhnə nümunə kodu
Bir neçə ay, istifadə etməyə çalışırıq Sizin daha müasir layihə.
Və sadəcə iş deyil.
Siz compiler səhv əldə etdiyiniz, syntax səhvlər, crazy məhsullarının bütün növ.
Belə ki, yalnız səbr ki, inşallah olacaq
olduqca gözəl təcrübə var Swift Ümumiyyətlə ilə.
>> İndi join-- həqiqətən bilərsiniz və mən ümid edirəm biz, həqiqətən, hələ bu year-- var
CS 50 Apple app inkişaf komanda olan
Əgər hər hansı bir apps yüklemek üçün imkan verir siz iOS cihazlar yaradır.
Belə ki, bu URL əgər nəzər Siz bunu maraqlıyıq.
>> Belə ki, yalnız bir neçə Swift özü haqqında hər şeyi.
Bu tərtib dilidir.
Amma bəzi görəcəksiniz Biz istifadə xüsusiyyətləri
Bu bir az da istifadə imkan verir bir yol, eləcə də şərh kimi.
>> Sintaksis bir çox borc C. Bu əsasında və C. yazılı
Və belə ki, biz olduğunu görəcəksiniz takeaways bir çox var
Mövcud bilik C biz Swift üçün port bilər ki.
>> Lakin şeyi var ki, C. çox fərqli etmək
Bu, çox güclü çap olunur.
Avtomatik yaddaş idarə var.
Sizə fikrində deyilik malloc və ya pulsuz yerdə istifadə edin.
Bu ümumiliyi üçün nəzərdə tutulmuşdur.
Belə ki, başqa sözlə, siz onu istifadə edə bilərsiniz Apple Watch kontekstlərdə bütün növ,
iPhone üçün bütün yol OS X, və qədər hətta bəzi server, hətta bəzi scripting.
Amma biz ki, görürsünüz scripting dəstək
Biz hələ çox var kimi digər dillərdə var.
Belə ki, çox güman ki, istifadə olacaq Bu xüsusi inkişafı üçün
Mac və ya iPhone.
>> Və bu müasir xüsusiyyətləri bir çox var.
Və bu çox şey stuff var ki, biz, bu gün üçün cəhd olacaq
həm də mövzu səmimi ki, biz bütün kurslar sərf edə bilər.
Əslində, CS 51, təklif növbəti dövr,
bu mövzular üzrə bir çox diqqət ki, aşağıda təsvir olunur.
Belə ki, bütün semestr sərf edə bilər bu şeyi dərk.
Amma biz cəhd olacaq onların vasitəsilə almaq üçün
ən azı kifayət qədər ki, siz nə başa düşmək olar
siz baxmaq zaman gedir bir Swift proqramı
və yol hack edə son layihə üçün vasitəsilə.
>> Ən yaxşı yollarından biridir İndi ki, siz bu barədə əlavə məlumat əldə
yalnız Apple vasitəsilə səmimi deyil Swift üçün sənədləri təqdim.
API bir çox var mövcuddur ki.
Bu sizin üçün yaxşı bir ev baza var xüsusi şey üçün baxmaq ki,
IOS cəlb API etmək istəyirəm.
Siz kamera istifadə etmək istəyirsinizsə Məsələn, siz burada axtarır başlaya bilərsiniz
və həmçinin Google və Stack istifadə Siz zamanki kimi Overflow.
>> Bu hər hansı bir sual biz doğru tullanmaq əvvəl?
Oldu.
Üzrə hərəkət edək.
>> Belə ki, ilk, mən bir Məsələn faylları sayı.
Mən addım cəhd gedirəm nisbətən tez onların vasitəsilə.
Bu Swift üçün Hello World fayl.
Bu, çox sadə.
Yol daha şərhlər var faktiki code orada daha var.
Faktiki kodu edir bildirək line 14-də çox aşağı.
Bu çap deyir.
Və sonra bir funksiyası zəng var.
Biz bir daxil keçən edirik string Hello CS50 çağırıb.
Heç bir semicolons var ki, görürsünüz.
Heç bir int əsas var ki, görürsünüz.
Heç biri var biz C. idi cruft
Biz bu yolla Swift istifadə edərkən, yalnız bir mətn faylı yazıldığı
və sonra mənim kompüter saxlanan Mən onu tərtib və çalıştırabilirsiniz.
>> Mən burada Qeyd edək ki, CS50 IDE istifadə.
Bu edirəm ki, nəzərdə tutur çalışan və mən OS X edirəm ki,
və mən Xcode artıq quraşdırılıb ki, bu üçün bu maşın
həqiqətən funksiyası.
Amma bu yalnız bir normal mətn faylı ki, biz sonra tərtib və redaktə edə bilərsiniz.
Belə ki, bu, həqiqətən, necə işlədiyini görmək edək.
Mən onu tərtib istəyirsinizsə?
swiftc 1.swift.
Bir an və ya iki sonra, biz indi olduğunu görəcəksiniz
1 adlı bir fayl bu tərtib.
İndi biz CS50 çap, deyil, bizim Hello World tətbiqi.
>> Kimi başqa bir şey edək yaxşı ki, default deyil
biz daxil yox idi / n bir yeni xətt çap.
Mənim cari olaraq, çap funksiyası ilə Swift sizin üçün yeni bir xətt çap edəcək.
Siz isteğe əlavə keçə bilər parametri bunu deyil demək.
Amma ki, daha ətraflı məlumat üçün Google.
Mənim cari olaraq, çap xətt edəcəyik.
>> Bütün hüquqlar, belə ki, hərəkət edək sonra bəzi digər şeylər.
Belə ki, necə biz, həqiqətən, dəyişənlərin müəyyən edə bilərsiniz?
Biz ki, istifadə var edə bilərsiniz iki üsullardan biri.
Mən istəyirəm ki, bir demək ilk bu let müəyyən edir.
Bu vacibdir səmərəli, çünki
nə edirik daimi müəyyən edir.
Biz dəyişən yaratmaq üçün gedir, daha doğrusu daimi adlı adı,
bəzi fel ona təmin Bu halda, simli Dan.
Amma bu etsin istifadə edərək, söz, biz söyləyərək
Bu dəyişən ki, və ya yenidən adlı constant--
adı heç vaxt dəyişdirilə gedir.
Bu ərzində dəyişməz olacaq Bu proqramın müddəti
və ya ərzində kontekstində müddəti
ki, dəyişən mövcuddur.
>> Bu zaman ki, həqiqətən vacibdir Siz bəzi məlumatlar var
proqram dəyişdirmək gedir, və nümunələri bir sıra görəcəksiniz
biz istifadə etmək istədiyiniz zaman haqqında digər sintaksis qarşı qoy,
imkan istifadə vacibdir Mümkün bu bildirir, çünki
bu dil dəyişdirilə niyyətində deyil,
və bu, həqiqətən edə bilərsiniz optimallaşdırılması bir çox
sürəti artırmaq üçün və Proqram təhlükəsizlik.
Və təhlükəsizlik, mən imkan demək crazy səhvlər ilə crash
biz ola bilər ki, C. görməyə vərdiş
>> Sonra biz string interpolation istifadə edə bilərsiniz bir string ərzində bu içine.
Beləliklə, biz bu edə bilərsiniz çap line, salam çap
və sonra backslash açıq parens istifadə edərək, və sonra mənim dəyişən adı,
Bu halda daimi olan, parantez bağlayın.
Mən mahiyyətcə sonra qoyulması alıram bu dəyişən çağırıb adı məzmunu
simli daxilində və sonra orada nəticə çap.
>> Bu şəkilə olan başqa bir dəyişiklik var Mən çox üst, var,
bir shebang line qoymaq əsasən yalnız müəyyən
Mən istifadə etmək istəyirəm ki, Swift tərcüməçi olan
Mən artıq o deməkdir ki, bu proqram tərtib.
Mən yalnız öz script kimi çalıştırabilirsiniz.
Amma bu arxasında, bu halda, edir səhnələri tərtib və sonra olunur
run olan.
Bu, bizim üçün yalnız görünməz var.
>> Bütün hüquqlar, belə ki, hərəkət edək.
Belə ki, fırıldaqçılıq bir az var ki, əvvəl baş verib.
Mən sizə ki, mən göstərdi sabit müəyyən edə bilər.
Mən bunu bəzi məlumatlar təmin edə bilər.
Amma bu halda, mən deyil ki, qeyd həqiqətən məlumatların növü daxil
Bu edir.
Və, çünki compiler, Swift bilərsiniz
yalnız based data növü nəticə çıxarmaq Mən onu qoymaq məlumatlar.
Bu bu qiymətləndirən bilir ki, çünki dəyişən burada, bu veri sağ
Burada, bu simli olduğunu bilir.
Və bu daimi adı səbəbdən eləcə də bir simli olacaq.
>> Amma biz də açıq ola bilər növü haqqında
biz istifadə edir sabitləri və ya dəyişənlər
Bu sintaksis istifadə edərək Əvəzində adı colon String bərabərdir imkan
Bu halda biz istəyirik deməkdir Dan, daimi adlı ad müəyyən olacaq.
Bu növü simli olacaq.
Və dəyəri Dan olacaq.
İndi digər yolu biz dəyişənlər yarada
bu mutable dəyişənlər, olan biz ki, əslində, gedir deməkdir
zaman onların məzmunu dəyişmək kontekstində müddəti
ki, dəyişən biz müəyyən deyil ki, var söz istifadə əvəzinə bildirin.
Ancaq yenə də, ismarıcları, halda bilirsiniz ki, data manipulyasiya etmək lazımdır ki,
üçün imkan istifadə etməyə cəhd performans təkmilləşdirilməsi.
>> Bu halda, mən sonra bilər məlumatların növü daxil
biz daxilində olmasını gözlədiklərini etiket adlanan bu yeni dəyişən.
Bu simli olacaq.
Və biz sonra concatenate olacaq iki strings birlikdə simli hello,
və simli təmsil dəyişən, daha doğrusu, daimi adı.
>> Belə ki, bu, çünki gözəl qədər ki, biz kimi PHP
çox asan string concatenation var.
Biz avtomatik olaraq yoxdur yaddaş idarə hər hansı istifadə
ölçüsünü artırmaq və bunu orada funny şeyi hər cür.
Biz, həqiqətən, gözləmək olardı kimi işləyir.
>> Bütün hüquqlar, bu barədə hər hansı bir sualınız?
>> İndi digər səbəbi biz imkanı var lazımdır
nə müəyyən etmək üçün data dəyişənlərin növü var
bəzən biz deyil, çünki dəyişənlər başlamaq istəyirəm
bəzi məlumatları müəyyən point.
Bu halda, belə ki, deyək Mən giren başlamaq istəyirəm ki,
bir sinif kitab bəzi notları.
Yaxşı mən bilirəm ki, hər kəs Mən olmaq istəyirəm dəyişənlər
bir mutable grade olacaq.
Və biz də bilirik ki, biz Bu bir tam olmaq istəyirəm.
Amma bəlkə biz hələ yoxdur ki, sinif var.
>> Swift, siz var məlumatların növü müəyyən
ki, bir ilə bağlıdır dəyişən və ya sabit edək
Siz, həqiqətən, bilərsiniz əvvəl ki, dəyişən istifadə edin.
Güclü tipli, çünki, Bir növü birləşmək var
bu dəyişənlərin.
>> Mən düzgün deyil varsa, bu halda belə bəzi dəyəri ilə ilk başlatılmış,
sonra Swift demək lazımdır nə Mən data type olmasını gözləyirik.
Və qalmaq olacaq eyni data type
Bu proqram tarix boyunca.
>> İndi qısa müddətdə aldanmaq bilər Bu sinif dəyişən yaratmışdır
və bir təqdim I, əgər indi 100 tam,
concatenate üçün cəhd etmək istəyirəm ki, tam bir string,
hələ istifadə etmək aldanmaq bilər ki, simli concatenation operator
kimi biz yalnız bir neçə xətləri əvvəl idi.
Amma təəssüf ki, Bu, həqiqətən deyil
Siz, çünki iş mahiyyətcə həyata
iki müxtəlif növ bir əməliyyat.
>> İndi bu-birindən çox fərqli həqiqətən PHP kimi dillərdə
növ öz növ ilə loosey goosey.
Onlar yalnız, Bəli, istəyirəm edirik nə olursa olsun, mən qayğı yoxdur.
Yalnız mənə bir növü vermək və bəlkə mən doğru şey edəcəyik.
>> Bu halda, Swift növləri haqqında çox ciddi
Siz ilə məşğul olan.
Bu toplama operator və ya concatenation operator
mahiyyətcə bir neçə var müxtəlif mümkün variantları.
Siz toplama edə bilərsiniz integers, və ya sizinlə
string concatenation edə bilər, və bəlkə bəzi başqa şeylər həmçinin.
Amma ki, operator tanımır əgər bu hər tərəfdən nə,
və ya həmin birləşməsi olduqca iki növ, bu gözləyirik nə deyil,
sonra bir çatışmazlığı səbəb olacaq.
>> Bu halda, belə ki, bu nə deməkdir bir simli plus tam var?
Yaxşı kontekstində Bu, biz yəqin ki, istəyirəm
simli concatenation əməliyyat etmək.
Amma əlbəttə kompüter kontekstində ki, sort yoxdur.
Və belə ki, biz təmin etmək lazımdır əlavə məlumat
bu nə bildirin Biz nə istəyirik ki.
>> Başqa sözlə, əslində belə Swift güclü tipli ki,
Bir nə var deməkdir əlavə iş az
bu fəaliyyət üçün Siz istədiyiniz yol.
Amma nəticədə, bu daha təhlükəsiz edir.
Və bir dəfə almaq bu növ nəzərə,
hər şeyi yalnız səmimi başlamaq olduqca yaxşı iş.
>> Bu halda, biz sonra elə string concatenation çıxış
aydın tökmə ilə simli tam
Bu onu qucaqlayaraq kapital S String funksiyası,
və sonra simli concatenation istifadə operator, bizim etiket dəyişən dəyişdirmək üçün
və sonra onu çap.
>> İndiyə qədər belə yaxşı?
Bütün hüquqlar, üzrə hərəkət edək.
>> İndi məlumatların bir sıra var biz Swift istifadə edə bilərsiniz növləri.
Siz vərdiş halına kimi, bir mutable array yarada bilərsiniz.
Və array yalnız bilərsiniz bir növü var.
>> Belə ki, bu halda, biz yaratmaq olacaq integers bir mutable seriallarda hansı
biz notları zəng və biz mümkün olacaq Bu kvadrat mötərizə ki, saxlamaq üçün
sizin kimi format vərdiş artıb etdik Başqa dillərdə müxtəlif üçün.
Amma biz istəyirik ki, burada qeyd şeyi bir neçə müəyyən.
notları bir mutable dəyişən deyil biz let söz istifadə.
O deməkdir ki, belə ki, biz bundan sonra dəyişə bilərsiniz Bu serialın məzmunu.
Bu tipli Array Int edir və biz deyə bilərəm ki,
Burada bu kvadrat mötərizədə əsaslanır.
>> Gözəl şeylər indi bir Bu barədə biz deyil
bir çox etmək imkanı var Əlavə informasiya
array, yalnız istifadə bəzi sadə dot notation.
Belə ki, məsələn, grades.count bizə təmin
ki, mövcud maddələr sayı biz sonra olduqca əldə edə bilərsiniz array,
asanlıqla sadəcə dot notation istifadə edərək.
>> Əgər əlavə əlavə etmək istəyirsinizsə Bu array maddələr,
Siz PHP stil edə bilməz burada yalnız açıq-aşkar müəyyən
bir index da, bəzi dəyəri daxil etmək istədiyiniz ki.
Əksinə, əlavə istifadə array növü metodu
bu siyahıya, həmin maddə 95 əlavə.
>> Belə ki, indi bu array aşağıdakı var 100, 0, 90, 85 contents--.
İndi biz əlavə etdik Ki, 95 həmçinin.
>> Digər yolları var biz hər şeyi əlavə edə bilərsiniz.
Siz, həqiqətən, istifadə edə bilərsiniz bir toplama edir operator,
olan kimi təfsir olunacaq bir sıra əlavə əməliyyat.
Və sonra başqa əlavə edə bilərsiniz Onun məzmunu 70 və 80 olan array,
ki array.
Belə ki, indi biz Bu dəyişən məzmunu
100, 0, 90, 85, 95, 70, və 80 grades--.
Bu yalnız bir gözəl az sintaktik deyil Swift bizə təmin şəkər.
>> Biz yekun istəyirsinizsə Belə ki, notları biz bəlkə istəyirik
təkrarlamaq istəyirəm olacaq bu loop hər maddə üzərində.
Və biz Swift-ci ildə, anlayışı, var bir loop üçün gözləmək kimi.
Amma biz göstərir yolu bir sıra az fərqli.
Bu halda, Belə ki, hər şeyi yekunlaşdırmaq alacağıq
müvəqqəti yaratmaq niyyətindədir bizim üçün dəyişən deyilən məbləğ
bu count saxlamaq.
>> Və bizim üçün xəbərdarlıq burada loop tikinti.
0-ci ildə indeksi üçün .. <grade.count.
Belə ki, bu tikinti, 0 .. <grades.count Biz bir sıra əməliyyat
biz yaratmaq niyyətindəyik olduğunu söyləyən 0 qədər integers bir sıra
lakin grades.count istisna olmaqla.
Belə ki, bu olacaq 0, 1, 2, 3, 4, 5, up lakin bir çox biri qədər
grades.count əvvəl.
>> Belə ki, bu necə fərqli biz loops üçün adətən istifadə edirəm
Bəzi index harada dəyişən, ilk 0 bərabər müəyyən
və sonra bəzi qədər inteqrasiya maddələr sayı az dəyəri
ki array.
>> Belə ki, bir dəyişiklik var Bu, həqiqətən,
olan bizi çox asanlıqla imkan verir aralıklarının müxtəlif növ seçin.
Bu sıra dəyişdirmək əgər üç nöqtə, 0 ... grade.count,
bu sıra təmsil 0 daxil grades.count üçün,
ki sayı da o deməkdir ki, sonra sıra daxildir.
>> Amma bu çox lazımlı bu dəqiq şeylər üçün,
biz yerinə yetirmək üçün zaman loop üzərində tekrarlamalar
o indeksləri sıfır yönümlü, çünki, biz digər dillərdə gördüyümüz kimi
həmçinin.
Loop üçün bu hər hansı suallar?
>> Belə ki, gizli müəyyən var bu göstərici dəyişən,
onların dəyəri 0 başlayır və hər loop iteration davam edir
bir nöqtəyə qədər 1 qədər artacaq ki, grades.count bərabərdir
olan nöqtədə, loop aborts.
>> Bizim simli Qeyd edək ki, burada İnterpolasyon,
biz, həqiqətən, bir neçə sadə edə bilərsiniz bu dəyərlərə manipulyasiya.
Belə ki, index plus 1 həqiqətən olacaq ki, dəyəri bir toplama edir çıxış
index, çünki da Bu halda, bir tamsayı.
Və o nöqtədə, o, sonra simli çevrilir
və burada bu simli daxil interpolyasiya biz gözləmək kimi və çap. .
>> Və gözəl şey Diziler haqqında burada
biz də var edə bilərlər ki, alma dəyərlər və qəbulu dəyərlər
kvadrat mötərizə notation kimi istifadə biz də digər dillərdə gördüm.
>> Bütün hüquqlar, burada, biz indi Bizim siniflər bütün bizim məbləği hesablamaq.
İndi sort növbəti məntiqi addım olardı
tapmaq üçün bir bölmə əməliyyat etmək həmin siniflər orta həyata.
Amma əhəmiyyətli bir şey Burada baş hansı
bu məbləğ bəlkə bir tam olmasıdır.
Lakin biz bəzi yerinə yetirmək üçün lazımdır ikiqat bölgüsü sort.
Bu olacaq zaman son dərəcə əhəmiyyətli
bu əməliyyat istəyirəm, biz söyləyərək nə çünki
biz, həqiqətən, lazımdır ki, iki çiftler şöbəsinin həyata keçirir.
Və yenə, Swift, çünki çox güclü tipli,
biz aydın şəkildə bütün qurmalısınız ikiqat maddələr biz əvvəl həqiqətən
ki, əməliyyat.
>> Məqsədilə bizim üçün belə ikiqat bölgüsü yerinə,
Yalnız bir üçün kifayət qədər deyil həmin maddələr ikiqat olmalıdır.
Onların hər ikisi bir olmalıdır sürətli üçün ikiqat
Bu əmin olmaq Biz nə etmək istəyirəm nə.
Belə ki, biz sonra aydın typecast edəcək Yuxarıda hesablanır etdik məbləği
və çiftler üçün siniflər sayı, və sonra əməliyyat və mağaza çıxış
bu yeni dəyişən, daha doğrusu orta adlanan bu yeni daimi,
hansı növü, siz təsəvvür hansı olacaq?
Double, evet.
Bu halda, belə ki, biz onu müəyyən etmək yoxdur
Bu nəticə çıxarmaq olar, çünki data orta əməliyyatı növü
olacaq.
Və Swift ümumiyyətlə olduqca yaxşı haqqında növləri nəticə çıxarmaq edə.
>> Bu görmək istəyirsiniz run, və ya hərəkət edə bilər?
Mən davam etmək istəyirəm.
Bu hər hansı bir hər hansı suallar?
Great.
>> İndi biz almaq üçün başlamaq olacaq yaxşı stuff-- Defining funksiyaları,
və digər növ bir neçə Swift üçün unikal deyil ki,
Başqa dillərdə görüldü Bu baxımdan qədər,
lakin onlar digər mövcuddur Daha sonra tapa bilər languages.
Belə ki, ilk istəyirsinizsə bir funksiyası müəyyən etmək üçün,
Siz funky sözü ilə müəyyən funksiyası, və sonra funksiyası adı,
və sonra parantez, arqumentlər ki, funksiyası qəbul etmək istəyirəm.
arqumentlər də olmalıdır müəyyən yerləşir generally--
həmçinin məlumatların növü daxil etməlidir ki, onlar nəticə çıxarmaq olar halda onlar var.
Və biz kiçik görürsünüz Yalnız bir az verirlər.
>> Belə ki, bu halda biz bir var funksiyası printGradeCount çağırıb.
Biz qəbul olacaq dəyişən və ya deyil, bu halda,
bir constant-- gradebook çağırıb.
Və o olacaq integers sıra yazın.
İndi bir şey var ki, burada həqiqətən vacibdir
ki, Mən sizə anlamaq istəyirəm.
Ki, Mənim cari olaraq, bu dəlilləri var Bu funksiya üçün giriş olunur ki,
bir gizli let söz ilə müəyyən edilmiş, Mən bu dəyişdirə bilməz o deməkdir ki,
burada gradebook dəyişən.
Və sort, anlamlı Siz data keçən edirik, çünki.
Və bəlkə də istəmirəm altında dəyişib olunacaq.
Bu aydın qeyd etmək mümkündür bu bir dəyişən qoyaraq ki,
Burada var söz.
Amma ki, biz bir gotcha deyil qeyd nəfər keçmişdə etmiş
onlar olacaq ki, ehtimal ki, dəyişən olmaq zaman, əslində, onu
daimi deyil.
>> Bütün hüquqlar, belə ki, burada, sonra bu halda, Biz hər hansı bir qaytarılması növü ifadə deyil.
Biz necə üçün sizə göstərmək lazımdır yalnız bir anda olduğunu.
Amma biz burada fark vəziyyəti, əgər yalnız bir sadə.
Gradebook Əgər boş Bu halda hansı
Bu tam yalnız mülkiyyətidir array, sonra biz bir şey çap.
Əks halda biz başqa bir şey.
>> Pretty sadə günə qədər düşünürəm.
Hər hansı bir sualınız varsa Lakin məni dayandırmaq.
>> İndi bu funksiya, orta, həmçinin edir bəzi dəlilləri, daha doğrusu bir dəlil,
gradebook, və bu zaman olan ikiqat növü qayıtmaq üçün gedir.
Bu hesablama Çünki orta və bu
həqiqətən ki, geri gedir zəng xəttinə hesablanmış orta.
>> Bu halda, biz müəyyən Ox sonra növü qayıtmaq.
Bu hiss edə bilər ilk qəribə cür.
Siz vərdiş artıb etdik geri qəbulu
funksiyası adı əvvəl yazın.
Lakin bu hesab əgər riyaziyyat baxımından,
kimi riyaziyyat zaman ki, bir funksiyası müəyyən,
Bəzi ilə funksiyası var giriş, və bir məhsulun istehsal.
Və dəqiq nə var Bu taklit üçün nəzərdə tutulur.
Və digər dillərdə bir neçə var ki, eləcə də oxşar sintaksis var
lakin yəqin ki, heç biri Siz CS50 gördüm.
Amma hələ də səhv etməyin.
arrow gedir nə deməkdir bu halda qaytarılması.
OK, belə ki, necə biz gedir Bu orta hesablamaq üçün necə?
Yaxşı, əgər gradebook boş, yaxşı, sonra biz istəyirik
olan bəlkə, 0 qayıtmaq üçün gedir ağlabatan yolu bu müalicə.
Mən gəlsin, bilmirəm geri ki, bir az.
Bu, həqiqətən bilməz məqbul yol
orta əgər hesablamaq üçün biz boş gradebook var.
>> Sonra biz yalnız bizim toplama yerinə yetirmək lazımdır.
Biz, həqiqətən, ki, burada edək bir alternativ versiyası
Bizə təkrarlamaq üçün imkan verir loop üçün bir sıra hər bir maddə üzərində
və hər bir element yerləşdirmək öz dəyişən.
Da sinif üçün ifadə edərək gradebook, biz nə deyə edilir
biz dolayısı olacaq ki, adlı yeni sabit yaratmaq
təmsil gedir grade gradebook hər unikal maddə
hər zaman ki, loop iterates üçün.
Ilk dəfə Belə ki, Bu run, grade olacaq
gradebook ilk maddə ola.
ikinci dəfə olacaq İkinci maddə, belə ki, və s
gradebook var qədər elementləri özünü canı.
Sonra biz ki, yekunlaşdırmaq mümkün olacaq Bizim toplama dəyişən sinif
və orta qayıtmaq biz əvvəl gördüm.
OK, hər hansı bir sualınız?
Bəli?
Auditoriya: Mən iki sualım var.
Sayı bir, təxmini, bilərsiniz bu bir tam run?
Bir olmaq yoxdur ikiqat, doğru deyil?
DAN AMRMENDARIZ: Kompüter siz ki, sual təkrar?
Auditoriya: Mən edə bilərəmmi orta kimi tam?
DAN AMRMENDARIZ: Kompüter siz orta kimi tam edirsiniz?
Belə ki, bir tam qayıtmaq əvəzinə ikiqat orta?
>> Auditoriya: siz Return-- ki, indi aşağıdakı var.
DAN AMRMENDARIZ: Burada, 0.0 qayıtmaq?
Auditoriya: Bəli, yalnız 0 qaytarın.
Belə ki, ya olacaq 80 və ya 85, lakin 85.2.
>> DAN AMRMENDARIZ: bu halda ki, belə bir neçə müxtəlif yolları var
ki, cavab.
Mənə qaydada onlara cavab bildirin.
Mən yalnız bu geri edə Belə ki 0, 0 tam dəyəri.
Və belə ki, bir səbəb olacaq Bu halda Növü səhv
bir cüt gözləyirik, çünki lakin sonra bir tam qayıdır.
Mən tam qayıtmaq istəyirsinizsə, mən.
Mən qaytarılması növü müəyyən edə bilərsiniz , int burada 0 qayıtmaq üçün,
və ikiqat bölgüsü yerinə.
Amma sonra biz olardı tam bölgüsü edir.
Və belə ki, biz sonra almaq deyil biz bəlkə gözləmək olardı ki, orta.
Amma bəli, biz dəyişə bilərsiniz ki, şəkildə növləri.
>> Auditoriya: Və ikincisi, siz üst bir cüt var.
Lakin aşağı, zaman ikiqat geri etmək,
avtomatik olaraq artıq Double format qaytarılması.
Niyə hələ də müəyyən etmək lazımdır ikiqat ilə üst arrow ilə?
>> DAN AMRMENDARIZ: Belə ki, halda, bu hissəsi
bir the--, belə ki, sual təkrar Bu qaytarılması gizli çünki
Burada növləri, hansı növ bu, həqiqətən, , biz Swift ilə açıq olmaq lazımdır
biz istəyirəm nə haqqında Bu funksiya həyata qayıtmaq
Bu yazın həyata zaman, belə ki, yoxlanılması, əmin edə bilərsiniz
biz, həqiqətən, yazılı nə ki, aşağı, həqiqətən, uyğun.
Belə ki, bir çek kimi sort var vəziyyət özünüzü sort.
Amma are--
>> Auditoriya: [işitilemez] arrow?
>> DAN AMRMENDARIZ: hallarda zaman var biz dolayısı edə bilər ki, müəyyən edə bilərsiniz
qaytarılması növü seçin.
Amma bu halda, mən deyil ki, iş olardı.
Bəzi digər sintaksis var biz sonra görəcəksiniz ki.
>> Bütün hüquqlar, belə ki, bu mənbə kodu bir az fərqli
bu dəlilləri çözümler çünki biz zəng etdiyiniz fəaliyyət göstərir.
Bu işləri necə mənə göstərmək bildirin biz, həqiqətən, hərəkət əvvəl
bəzi maraqlı şeylər ki Swift baş.
>> Bu halda, belə ki, əgər mən yalnız bu run Bu nə indeksi, fark
is-- isə, bu cür mənə qəribə səhv verir.
Mən bir neçə keçmək lazımdır bir command line arqument kimi integers.
Belə ki, 150 və 80 görək, və Enter düyməsini basın bu, həqiqətən bunu nə tapmaq üçün.
Bu hər qəbul edir integers kimi bu dəyərlər.
Bu gradebook onları giren var.
Və sonra həyata var ki, orta hesablanması
və biz gözləmək olardı ki, tipi.
>> Amma təbii ki, bir şey gedir var bu rədd şey ilə
bir tam kimi bir şey.
Biz zaman geri bilər command line dəlilləri ilə məşğul
ilk C və digər dillərdə Ki, command line arqument 0-ci maddə
siyahısı komanda adı biz, həqiqətən, icra edir.
Bu halda, belə ki, mən yalnız loop alıram bütün command line dəlilləri üzərində.
Amma xülya hər hansı bunu deyiləm birinci üzərində keçmək edin.
Mən yalnız açıq-aşkar deyiləm və ya dolayısı ilə Ben bu cür olan yoxlanılması
integers, həqiqətən, Mən əvvəl var Bu hesablanmasını həyata keçirir.
>> Və mahiyyətcə var nə burada baş.
Hər mübahisədə üçün proses arqumentləri,
Mən bəzi çek çıxış üçün gedirəm.
Və bu halda, mən gedirəm ilk çevirmək üçün cəhd
tam o arqument tərəfindən aydın Typecast həyata,
Bu, giriş, bir string çünki və tam əslində.
>> Amma bu qəribə sintaksis növüdür, imkan grade Int (dəlil) bərabərdir əgər.
Həqiqətən nə baş verir burada son dərəcə
Sizin istifadə Swift vacibdir.
Bu nə istifadə edir isteğe növü çağırıb.
>> Belə ki, bu funksiya, Int (dəlil) yalnız bir tam, lakin yekunları qaytarır
nə isteğe tam deyirlər.
Və bu sort edir bir növü üst bir növü.
Siz sort kimi təsəvvür edə bilərsiniz bir paketi kimi qaytarılması.
Və siz açmaq zaman paketi, ya
nəticə bir tam, var, və ya Bu bütün bu tamamilə heç bir şey yoxdur.
Bu bir səhv yoxlanılması kimi faydalıdır mexanizmi, çünki bu halda
biz tapa bilərsiniz, bu idi növü dönüşüm uğurlu?
Idi, onda əslində daxili tam gedir.
Əks halda bəzi olacaq biz nil zəng edəcəyik dəyəri olan
heç bir tam nümayəndəsidir.
Bu, həqiqətən heç bir şey nümayəndəsi var.
>> Və bu halda tikinti bizə paketi açmaq üçün imkan verir,
məcburi ki, isteğe.
Və biz açmaq edə bilərlər, əgər paketi və daxili bir tam tapmaq,
sonra biz söyləyərək burada biz sonra olacaq edir
ki, dəyəri müəyyən edilə imkan verir Bu sinif adlanan bu daimi.
Əgər şərhdə bu hissəsi, əgər şərhdə üst hissəsi
run çünki edəcək açmaq uğurlu oldu.
>> Yalnız belə ki, baş verərsə bir səhv bəlkə var idi
Bu açıq tipli dönüşüm bəlkə, bir tam bir simli
məsələn dəyər ABC var.
Və həqiqətən gedir deyil bir tam çevirmək.
Sonra, Nil qayıdacaqlar olan tam deyil.
Və bu halda bəyanat yaxşı, sonra uğursuz.
Çünki mövcud deyil grade Bu, heç bir tam məzmun var.
Və əvəzinə bu başqa blok davam edəcək.
Bəli?
>> Auditoriya: Nil N-I-L edir?
DAN AMRMENDARIZ: nil bəli, N-I-L edir.
>> Belə ki, bu, bəlkə biridir Swift haqqında ən ağır şey,
Siz etdiyiniz xüsusilə bir iOS app alaq otları
və həqiqətən çalışdığınız bəzi inkişaf etmək.
Bu böyle olacaq haqqında isteğe sizə.
Bu isteyen olacaq sual işarələri və nida xal.
Amma əgər siz yazaraq anlamaq dəfə həyata figuring bəzi vaxt sərf
nə isteğe növləri ilə gedir Özünüz baş ağrısı bir çox saxlaya bilərsiniz
Siz üçün çalışırıq kimi Swift bir app yazın.
>> Bu, həqiqətən çox güclü xüsusiyyət var.
Və yalnız lazımdır İndi bunun üçün mənim söz almaq.
Amma biz bu tikinti görəcəksiniz və s bu kimi
digər mənbə kodu bəzi ki, biz yalnız bir az göstərmək lazımdır.
>> Ilkin suallara burada var?
Qədər əhəmiyyətli paket bir ki, isteğe növü metatype sortudur.
Bu da, bir dəyəri var və sonra, əgər
bəlkə bağlı ki, dəyəri olacaq bu və ya heç bir dəyəri var,
və sıfır ilə təmsil olunur.
Bu qalan bəlkə beklediğiniz kimi.
>> Belə ki, ramp edək çətinlik yenə.
Və bu zaman, bəzi nəzər salaq faktiki olaraq mövcud digər məlumatlar növləri.
Onlardan biri olan, lüğətlər edir Python lüğətlərin çox oxşar.
Bu hash masa üçün bir qədər oxşar C. Bu əhəmiyyətli düymələri bir mapping edir
harada düymələri strings ola bilər.
Və bu düymələri baxmaq zaman, bu düymələri bir dəyər olacaq.
Belə ki, kifayət qədər bir sıra deyil, lakin əvəzinə, daha yaxından bağlı
bir hash xəritə və ya bir hash masa.
>> Bu ehtimal olunur necə edək həqiqətən biz əvvəl iş
mənbə kodu özü daxil.
Mən yalnız bu run, heç bir şey həqiqətən baş verir.
Mən gözləyirəm ki, mənə izah edir Aşağıdakı tipli bəzi parametrləri.
Beləliklə, mən təmin etmək gedirəm bəzi problem müəyyən adları,
belə pset0, bəlkə mən 100 var.
Və pset1, mən 5 var.
Və sonra imtahan, mən həqiqətən yaxşı idi və 30 var.
Və oops, mən burada bir yer təşkil edib.
>> Mən daxil edin hit zaman, siz görə bilərsiniz bəzi hesablanmasını həyata keçirir.
Bu gradebook üç deyir notları pset1, pset0, exam.
Və gradebook var bu xüsusi orta.
Belə ki, yenə, biz çalışırıq Bu gradebook ideya ilə,
lakin biz iterating davam edirik Bizim funksiyası mürəkkəbliyi ilə.
>> Başlanğıc Belə ki, biz yalnız istəyirik bir funksiyası yaratmaq gedir
istifadə çap üçün məsuliyyət daşıyır.
Bu çıxış var olan funksiyası yalnız
zorla proqram çıxmaq.
Bu bir şey deyil ki, Siz iOS app istifadə edəcək.
Bu, bu halda, yalnız bir command line arqumenti ilə.
Sonrakı biz Xcode doğru hərəkət başlamaq lazımdır.
Amma bu komanda xüsusi Swift line stil proqram.
>> Nin bəzi nəzər salaq Burada maraqlı şeylər.
Nin yalnız bir neçə, görək maraqlı şeylər bəlkə qeyd etmək
ki, mənim funksiyası var siniflər sayı çap,
Mən ki, siyahı var idi ki, xatırlayıram bilər items-- pset1, pset0 və imtahan.
Siz, həqiqətən, tez və asanlıqla bunu
a gradebook alaraq düymələri və dəyərləri var lüğət.
Əsas bütün vasitəsilə tapmaq burada dot düymələri üsulu,
və sonra bu joinWithSeparator istifadə sonra düymələri bütün tutacaq
biz çap etmişdir ki, pset1-- və ya sorry, pset0, pset1, və exam--
və onlara birlikdə concatenate bir vergül və boşluq istifadə
bir uzun string yaratmaq.
Bu qoşulmaq əməliyyat yalnız phenomenally deyil kontekstlərdə bir sıra faydalı.
Və belə ki, bu joinWithSeparator edir.
>> Bu ki, bir şey deyil Swift 1 Swift 2 dəyişdi.
Bir olmaq üçün istifadə Python style-- değilseniz
Python-- bir Python ilə tanış stil strings metodu buyurun.
Amma ki, artıq Swift 2 halda.
Siz istəyirsinizsə, bu istifadə etmək istədiyiniz məhsullarının bir sıra concatenate üçün
birlikdə bir simli ilə.
>> Belə ki, bəlkə sonra bizim əvvəl orta müzakirəsi,
Bu bir az daha anlamlı Bizi orta funksiyası qurmaq üçün
daha isteğe ikiqat olmaq Yalnız bir açıq ikiqat artıq.
Ki, idi, çünki qeyri-adi vəziyyət olduğu,
nə gradebook həqiqətən əgər ərzində heç bir dəyərləri var?
Nə orta qaytarılması lazımdır?
>> Yaxşı bəlkə C siz bir şey olardı
kimi, sentinel dəyər təmin kimi 0.0, və ya bəlkə bir mənfi sayı,
və ya bir şey yalnız fakt təmsil bəzi səhv vəziyyət var idi ki,
və bəlkə həqiqətən yoxdur ki, orta hesablamaq imkanı.
Yaxşı bir ifadə gözəllik isteğe növü bunu olardı.
Və mən indi bütün bu sözləri deyərək, lakin alıram bu, həqiqətən optionals istifadə etmir.
Amma biz yalnız ki, görürsünüz biz orta bilərsiniz dəqiqə
ki, isteğe data type olmaq Bu, həqiqətən sonra bəzi məlumatları qaytarır əgər
ki, data qayıdacaqlar.
Əks halda biz qayıdacaqlar nil, bu olduğunu söyləyərək
heç bir mənalı hesablanmasını var.
>> Nin başqa bir şey üçün hərəkət edək.
Buradan belə ki, biz ariyordum command line bütün bu nümunələr.
Amma həqiqətən olacaq nə ilə məşğul olmaq üçün Xcode edir.
Və haqqında gözəl şeyi biridir Xcode və xüsusi Swift da,
Biz bu var ki, şey Playground çağırıb.
Və Playground deyil bütün iOS app.
Ancaq sınağa imkan verir bir çox asan şəkildə Swift ilə.
Siz bütün kodu edəbilərsiniz.
Bu gözəl burada qeyd sintaksis var.
Yeni bir fayl yaratmaq, o, xahiş edəcək Siz oyun yaratmaq istəyirsinizsə.
Amma Playground haqqında gözəl şey ki, pəncərə doğru deyil
Bu, həqiqətən sizə göstərir Sizin kodu çıxdı.
Mən aşağı diyirləyin əgər Belə ki, biz nə edə bilərsiniz kodu müxtəlif xətləri çıxış
həqiqətən olmaq olur.
>> Bu halda, belə ki, biz olacaq istiqamətləri yalnız bir az dəyişdirmək
və həqiqətən bir şey haqqında danışmaq Bu yüksək səviyyəli şəkildə vacibdir
Swift, bu və fəaliyyət bağlayırlar bu fikirdir.
Və yəqin ki, bu gördüm JavaScript bir az.
Sizin ki CS50 var, bağlayırlar
bunu çox məşhur, çox yaxşı bir yoldur müasir dildə yüksək səviyyədə şeylər.
Lakin bu da cür çətindir ilk dəfə ətrafında baş kesmek.
Bu baxaraq Belə ki ilk dəfə, ki, OK.
Yalnız mənbə kodu baxmaq və görmək evdə anlamaq bilər.
>> Bu halda Belə ki, ki, bildirin, biz eksponent bir çox yaratmaq istəyirəm
bəzi sabit dəyəri.
Belə ki, bu halda mən bir funksiyası yarada bilərsiniz.
Mən güc zəng etmək üçün gedirəm Həyat 2 yeganə məqsədi
bəzi giriş və ikiqat almaq üçün Bu ki, dəyəri qayıtmaq.
Mən burada Qeyd edək ki, məlumatların bir növü qəbul.
Bu x adlı dəyişən olacaq.
Bu tipli Double var.
Mən burada ikili qayıtmaq üçün gedirəm.
Mən yalnız gedirəm bir çox səmimi, olduqca
bu dəyər misli sadəlövh yol.
Mən sizə niyə bu göstərmək lazımdır yalnız ikinci faydalıdır.
>> Bu sıra ki, burada edək yenidən. 1 şey, dot üçün
o deməkdir ki, dot dot, 2, Bu loop iki dəfə davam edəcək.
Amma bu dummy dəyişən təmsil edir.
Mən, həqiqətən, fikrində deyiləm deməkdir hər yerdə ki, dəyişən istifadə
bu loop daxilində.
Mən yalnız bu xətt istəyirəm kodu iki dəfə çalıştırmak üçün,
bilmək ehtiyacı olmadan ki, sıra dəyəri.
>> Bu halda mən nəticə çalışan alıram So dəfə olan mahiyyətcə iki dəfə x
Mən bu dəyər squaring edirəm deməkdir.
Bu olur biz gözləmək kimi çalışır.
2 Power, bir dəyər keçən 2.0 bizə 4 bir çıxış verir.
10.24 3.2 işləyir.
>> İndi biz oxşar edə bilərsiniz 3 güc şey.
Amma indi yalnız üçündür dəyişdirmək.
1-ci dummy dəyişən üçün 3 vasitəsilə, 3 dəfə çoxaltmaq
və eyni şey.
>> Belə ki, bu bir az göstərdi hiss edə bilər.
Amma əhəmiyyətli var burada bir şey olan
bu baxaraq ki, iki funksiyaları var
müxtəlif yalnız bir şey, olan intervalında bu dəyəri.
Bu iki haqqında başqa hər şey funksiyaları, 3 güc və 2 güc,
ki, əslində, eyni çünki Onlar eyni şəkildə işləyir.
>> Bu nöqtədə, bir az belə alarm bell gediş edilməlidir.
Ümid edirəm sizə deyə nəyi, Bilirsiniz, bu bir az hiss edir
səy təkrarlanması kimi.
Yəqin ki, bir yol ki, mən var Bu bütün içine edə
və funksiyası təmin və ya bir funksiyası yaratmaq
məhz mən olmadan istədiyiniz nə aydın onu yazın ehtiyacı.
Bu nə güc bir bağlanması bizə imkan verir.
Belə ki, bu nəzər salaq.
Mən bir neçə sərf edəcəyik Bu dəqiqə, bu, çünki
Swift üçün olduqca vacibdir.
Biz bu hər zaman görürük.
Biz bir funksiyası müəyyən olacaq.
Bu powerOf adlandırmaq olacaq.
Bu qəbul olacaq parametri növü Int y çağırıb.
Amma qaytarılması növü nəzər.
qaytarılması növü olaraq, parantez, Double Double arrow.
Bu funksiya o deməkdir ki, bu funksiya powerOf,
bir funksiyası qayıdır.
Ki, ikiqat qəbul edir və ikiqat qaytarılması.
Belə ki, crazy cür görünə bilər, lakin bir az aşağı diyirləyin bildirin
və nə görmək üçün baxmaq.
Biz bu funksiya powerOf daxilində istəyirik.
Biz yeni funksiya yaratmaq edirik exponentiator adlı,
lakin bu nə etməz.
>> Bu var Qeyd edək ki, x giriş dəyəri.
Və bir Double edir və ikiqat qaytarılması.
Bu eyni kodu edir ki, biz 2 dəyəri istisna olmaqla, yuxarıda gördüm
3 və ya dəyəri, ki, ki, intervalında bağlı yuxarı,
ilə əvəz edilmişdir y bu dəyər olan
ilkin parametri idi Bizim powerOf funksiyası.
Və bu nöqtədə, biz exponentiator qayıtmaq.
Biz funksiyası qaytarılması edirik.
>> Bu cür bir az mind əsən kimi.
Amma nə təsəvvür edək Mən bu funksiyası zəng zaman powerOf
və 2 kimi bəzi dəyəri keçir.
Bu o deməkdir ki, İndi dəyəri var
Bu dəyər o deməkdir ki, y 2, bu exponentiator funksiyası y
ki, dəyəri 2 olacaq.
Amma bu qaytarılması alıram exponentiator fəaliyyət göstərir.
>> Belə ki, Swift I deyir qeyd Bu halda yaratmışdır.
kvadrat, bir tərif edək ikiqat qəbul bir funksiyası
və ikiqat qaytarır.
Mən bir funksiyası yaratmışdır meydanların bir şey ki,
burada bu mexanizmi istifadə edərək.
Və həqiqətən neler var bu funksiyanı qayıdır ki,
exponentiator, lakin bu dəyər y daxilində bükülür.
Və indi hər zaman istifadə dəyişən və ya bu daimi adlı
kvadrat, bu gedir bir funksiyası kimi davranmaq.
Və mən o dəyişən zəng edə bilərsiniz Mən bir funksiyası zəng,
və onu bir sıra keçir, Bu halda 3 kimi.
Mən sonra bu dəyər kvadrat olacaq.
Belə ki, 3 sonra olacaq kvadrat Biz burada görə bilərsiniz kimi, 9 olur.
>> Həqiqətən crazy, lakin bu artıq Mənə imkan verir
digər powerOf funksiyaları yaratmaq.
Mən OK, yaxşı indi istəyirəm, demək olar Like yeni funksiya yaratmaq, powerOf (3),
və o mağaza daimi adlı kub.
İndi kub olacaq sonra olacaq, ayrı-ayrı funksiyası
giriş və kub kimi bəzi dəyəri almaq biz alt xətt göründüyü kimi dəyər
burada.
2 kub 8 nəticə gedir.
>> İnşallah olduqca səliqəli stuff.
Siz əvvəl bu görməmişəm.
Mən bağlayırlar baxmaq üçün təşviq və bir az daha bu araşdırmaq.
Biz bir çox həqiqətən güclü stuff görmək oldu JavaScript və bəzi digər dillərdə.
Bu, həqiqətən, vacibdir həmçinin API dərk
biz yalnız ikinci almaq lazımdır ki,.
Bəli?
>> Auditoriya: zaman nə powerOf (2), mötərizə, sonra
başqa mötərizə, başqa input-- əsasən kvadrat əvəz edirik.
DAN AMRMENDARIZ: Belə ki, baxmaq Burada son xətt.
Bu, həqiqətən, tamamilə mümkündür Siz təklif zəncirləmə bunu.
Belə ki, powerOf (5) gedirik o deməkdir ki, burada 5 bir exponentiator var.
Belə ki, bu mahiyyətcə olacaq beşinci hakimiyyətə 4 eyni şey,
biz eksponent yaratdıq, çünki beşinci hakimiyyətə fəaliyyət,
və biz daxil keçən edirik ki, dəyəri 4 fəaliyyət göstərir.
Və biz dəyər almaq biz, 1024 gözləyirik.
Auditoriya: Və bir deyil bu daha asan edir, belə ki, ad
hər hansı kvadrat oxumaq.
>> DAN AMRMENDARIZ: Sağ, dəqiq.
Mən yalnız onu qoymaq əvvəl Belə ki, Burada belə bir sabit daxil
Bu ki, asan bu adı istifadə.
Bəli?
>> Auditoriya: Bu əhatədə powerOf, bu hissəsi
proqramlaşdırma dili yol fərqli olaraq
[Işitilemez] powerOf hesab?
DAN AMRMENDARIZ: Belə ki, bu halda, powerOf
sadəcə adı Mən burada müəyyən funksiyası.
Belə ki, xas deyil dil özü,
lakin əvəzinə, yalnız var bir funksiyası
ki, adı mən bu adı verir, çünki.
Hər hansı digər suallar?
Oldu.
>> İndi bu böyükdür.
Amma bir görmək fikrində deyilik bağlanması funksiyaları çox ki,
müəyyən harada daxilində bu kimi bir funksiyası, bir funksiyası.
Və siz bunu edə bilərsiniz.
Amma bu cür deyil həqiqətən zəruri, sağ?
Mən bu müəyyən niyə Like funksiyası adlanır exponentiator
və sonra dərhal geri.
Niyə bilməz Mən dərhal Bu funksiya qayıtmaq?
>> Və əslində, bu dəqiq deyil adlı bir anlayış arxasında ideyası
anonim funksiyaları, anonim funksiyaları həqiqətən deyil
çünki onlar bir adı var bir var ehtiyac yoxdur.
Və bu halda, 7B, biz dəqiq ki, tapa bilərsiniz.
Bu, bütün eyni kod eyni şey yoxdur
lakin indi biz belə yüngül onu dəyişib etdik bu powerOf funksiyası dərhal
bir funksiyası qaytarır.
Qayıtdıqdan sonra bildirək ki, açıq buruq bracket var.
Bu giriş Double gözləyirik oldu.
Bu çıxış Double gözləyirik oldu.
Və sonra söz kodu özü ayırır.
Belə ki, bu anonim funksiyası var.
Bu, faktiki olaraq isə, bir adı yoxdur əvvəl exponentiator adlanırdı.
Amma biz yalnız həqiqətən, gördüm exponentiator müraciət etməyib
ki, funksiyası xaricində.
Belə ki, fərqi yox idi.
Belə ki, bu anonim funksiyası Bu adsız çünki sözdə,
lakin hələ də istifadə olunur Bu kodu kontekstində.
>> Mən növbəti bir neçə olanlar inşallah davam
fikrinizi bir az əsən.
Biz bu daha sadələşdirmək bilər.
Astutely idi, çünki əvvəllər diqqət çəkən
bəlkə də həqiqətən, bilirəm Bu kodu inferring, nə
Bu kodu çıxış olacaq.
Və əslində, bu anonim funksiyası, biz əslində məlumatların növləri nəticə çıxarmaq olar.
>> Belə ki, bu bir, biz artıq aydın müəyyən etmək lazımdır
olan oldu məlumatların növü bu funksiyası giriş və çıxış
səbəblərdən bir neçə.
Biz qədər, müəyyən etdik ki, enclosing funksiyası prototip,
məlumatların bu anonim hansı növü funksiyası giriş və çıxış olmalıdır.
Və digər, biz kod nəticə çıxarmaq olar
burada biz qəbul olunur ki, Double növü var giriş
və ikiqat qaytarılması.
>> Biz açıq-aydın deyil ki, burada edək dəlilləri adlarını müəyyən
Bu funksiya qəbul edir.
Və belə ki, biz müraciət edə bilərsiniz görmək $ 0, $ 1 istifadə edərək, bu parametrləri,
s və s asılı olaraq istifadə parametri sayı
bu funksiyası.
>> Bu gedir bir şey deyil bir çox bu açıq buruq bracket görmək
müəyyən bir izlədi $ 0, və sonra bəzi əməliyyat,
və sonra qapalı buruq bracket.
Bu anonim funksiyası bu əməliyyatı həyata keçirir.
Bu parametri harada var Bu tipli inferred deyil.
Ilk parametri $ 0 edir.
Və bəzi əməliyyat ki, $ 0 olur.
>> Auditoriya: dollar işarəsi So , əsasən parametr deməkdir
0 birinci deməkdir?
DAN Armendariz: Bu doğru deyil.
Belə ki, dollar işarəsi əsasən deməkdir parametri və 0 birinci deməkdir.
Amma bu xüsusi işləyir Mən adına deyil bu hal
Mənim anonim funksiyası dəlilləri.
>> Auditoriya: Perl və ya bir şey varmı Orada bu dollar işarəsi, dollar 0?
DAN Armendariz: Üzgünüm, hansı varmı?
Auditoriya: Perl varmı Bu dollar 0, dollar 1 var
DAN Armendariz: mən deyiləm Perl ilə çox tanış,
lakin PHP nə dəyişənlərin müəyyən dollar əlamətləri əsaslanır.
Və bəzi dillər ola bilər bu kimi xüsusiyyətləri var.
Əslində, Swift borc bir bu kimi xüsusiyyətləri çox
Başqa dillərdə bir çox.
Biz bu Python göstərişlər baxın.
Tipli Bu tərif OCaml gəlib görünür.
Və biz yalnız bütün dəstə var müxtəlif dillərdə çox olan stuff.
Bu gözəl biri Swift haqqında hər şeyi
ən yaxşı bir çox edir ki, Dil bir dəstə fikir
və onların hamısını çəkəcək bir super dilinə.
Əslində, əgər mənə imkan verir fikrinizi əsən davam
belə ki, biz bütün bu bunu etdik.
Biz bəlkə də bu bir az sadələşdirmək bilər əlbəttə, ki, həyata tərəfindən bit,
Swift bir eksponent var funksiyası inşa.
Mən Darvin, idxal varsa hansı yalnız kitabxana ki,
İndi, bu funksiyası adlanır POW edir Mən funksiyası mənim güc sadələşdirmək bilər
Aşağıdakı olmalıdır.
Bu qaytarılması olacaq bu anonim funksiyası.
>> Amma bu indi nə qədər sadə oldu.
Bu anonim funksiyası ki, məlumatların bir növü qəbul edir,
və bir olacaq dəlil xüsusi,
növü Double edir ki, $ 0 müraciət.
Bu bir növü Double qayıtmaq üçün gedir.
Amma geri bəyanat İndi gizli deyil.
>> Və bu dəqiq stil ki, , Swift çox, çox yayılıb
bütün yer üzərində.
Biz bu görmək olacaq Swift hər zaman.
Beləliklə, mən bu bütün göstərən alıram Bu sintaksis çünki.
Bu, çox ümumi onu deməkdir ki, görmək
anonim funksiyası ki, həyata
bu dəlilləri bəzi əməliyyat.
Və gizli qaytarılması var.
Belə ki, bu, tamamilə eyni şeydir Bizi burada, bu demək üçün.
>> Bu buruq Çünki bracket, bir funksiyası var
bu əməliyyat istəyirik ilk mübahisə.
Biz ki, geri olacaq.
Amma bu xarici qayıdacaqsınız ki, bütün funksiyası qaytarılması,
ki, bütün anonim funksiyası biz yalnız yaratdıq ki.
Hər hansı digər suallar?
Bütün sağ, mən əgər bilmirəm Sizlərin bu hazırıq
lakin biz Swift hətta crazier bilərsiniz.
Hazır edirsiniz?
OK, bu böyükdür.
>> İndi biz, həqiqətən, imkanı var üçün, Swift, çünki necə modul
protokol əsasında necə və bu, var öz freaking operatorları müəyyən edir.
Bu halda kimi, biz idi heç bir yaxşı exponentiation-- üçün operator,
bir şey səlahiyyətləri həyata keçirilməsi üçün.
Amma, Swift, yeni müəyyən edə bilərsiniz dəqiq ki, yoxdur operator.
Belə ki, bu halda var burada sintaksis bir dəstə.
Və mən ona baxmaq üçün imkan lazımdır evdə bu baxdığımız zaman.
Amma biz bu infix müəyyən edilir operator, **, daha sonra bizə imkan verəcək ki,
nə müəyyən funksiyası ** həqiqətən
, sol əlini qəbul etmir yan və sağ tərəfdən,
və sonra ki, eksponent qayıtmaq sağ sol tərəfdən.
>> Və indi qəflətən I bütün yeni surət yaratmışdır.
Belə ki, 2 ** 3 üçüncü hakimiyyətə 2 deməkdir.
[Mind əsən SES] Bu by özü kimi ola etməlidir
OK, vida C. gedirəm Swift bütün yol.
Bu əladı.
Bu olduqca fantastik deyil.
>> Baxmayaraq ki, bu böyük bir nümunəsidir.
Amma bir dəfə kənarda heç vaxt Bu misal əslində
Öz operator müəyyən edilmişdir.
Amma hələ ki, göstərir Swift hakimiyyəti çox
və bu həqiqətən nə həqiqətən çox sərin.
Bəli, OK?
Auditoriya: Siz değilseniz Öz operator müəyyən,
Siz təsadüfən deyil bilirik necə cəhd və ki, bir operator yaratmaq
C yerdə olan kimi Swift haradasa gizli,
bir qaranlıq kimi ki, əvvəl görmüşəm bilər.
>> DAN Armendariz: Siz çalışdığınız əgər Belə ki, Öz operatorları müəyyən etmək,
müəyyən riski var mövcud operator üzərində bir.
Ki, ətraflı bir səviyyədə ki, gider Edirəm ki, biz artıq getmək üçün vaxt düşünmürəm.
Amma ki, bir risk edir.
Və çox səbəbi əslində Mən caret simvolu istifadə etməyən
gücümüz yazaraq etdiyiniz zaman, biz adətən 4 az caret 5 və ya bir şey istifadə
kimi, yalnız biz olduğunuzda Arkadaşları və ya hər hansı Gchatting.
Amma bu halda, həqiqətən bir toqquşma səbəb olardı.
Və mən yalnız çünki yol Mən bu halda bilmək baş
ki, toqquşma səbəb ki.
>> Oldu.
İndi təəssüf ki, üçün son yeddi dəqiqə,
Mən əsən saxlamaq lazımdır Ürəyinizdə bir az.
Mənə sizə göstərmək üçün imkan verir Bəzi başqa şeylər həmçinin.
>> Biz sizə bu fikri göstərilən etdik bu anonim funksiyaları olan,
sizə imkan verir bu bağlayırlar cür ətrafında funksiyaları keçir.
Siz onları dəyişə bilərsiniz.
Siz onları manipulyasiya edə bilər.
Siz crazy məhsullarının bütün növ edə bilərsiniz.
>> Amma başqa bir şey ki, faydalı olmaq olur
qabiliyyəti, fərqli üçün kimi bu funksiyaları qaytarılması
bir funksiyası, bir funksiyası keçmək başqa funksiyası bir parametri kimi.
Siz yer üzündə, nə də düşünür ola bilər Hesab edirəm ki, kimi bir şey istəyirsiniz?
>> Yaxşı, mən istəyirəm ki, deyək Bu operator almaq ki, mən
işləyib belə ağır yaratmaq və tətbiq etmək müxtəlif nömrələr bir dəstə üçün
bir sıra.
Belə ki, bu halda mən bir sıra var 1, 4, 7, 2, 5, 10, 56 integers--.
Mən onlara bütün ikiqat artırmaq istəyirik.
yol ki, biz adətən olardı yalnız yazmaq üçün nə
loop üçün sadə Onların bütün iterates
və bir növ çıxış onların üzərində kvadrat əməliyyat,
yeni o yeni dəyərlər giren dəyişən, daha doğrusu, burada yeni array.
Və çıxdı dəyəri Nəticədə, həmin seriallarda bütün
daha doğrusu o bütün elementləri artıq kvadrat.
>> Və biz eyni edə bilər bu cubing üçün bir şey,
lakin bir az həyəcan zəng olmalıdır off gedir
bəlkə var olduğunu söyləyən bir şəkildə, biz
Bu bir az asanlaşdırmaq edə bilərsiniz.
Və əslində var.
Biz yaratmaq bilər imkan verir bir funksiyası
bir yırtıcı, bir funksiyası kimi qəbul etmək olar?
Bu halda, belə ki, almaq bu dəlilləri baxmaq.
Biz ikiqat siyahısını qəbul olacaq.
Və sonra biz gedirik bir funksiyası qəbul
ki, f adlı dəyişən gedir ikiqat almaq və ikiqat qayıtmaq üçün.
Və bütün çıxış bütün bu funksiyanın
adlı Mapper gedir ikiqat adlı bir sıra qayıtmaq.
>> Bu sonra mənə imkan verir nə ki, siyahı üzərində təkrarlamaq deyil
indi eyni şey, lakin hər funksiyası tətbiq
ki, siyahıda fərdi dəyərlər.
Beləliklə, mən həqiqətən nə f bilmirəm.
Bu, mənim üçün fərqi yoxdur.
Amma bir Double edir belə uzun kimi, bu barədə bəzi əməliyyatı reallaşdıran
və sonra qaytarır bir Cüt, Mən sonra olacaq
arasında funksiyası xəritəsi edə siyahıda hər bir element.
>> Və proqramlaşdırma bu növü adlı ali məqsədi funksiyaları,
biz funksiyaları keçən edirik ətrafında parametrləri kimi
və funksiyaları ilə şeyler.
Bu bütün bunlar alaraq kimi sort var biz CS50 öyrəndim fikir
və sort onlara alaraq növbəti səviyyəyə.
Və bu CS51 style stuff var.
Və belə ki, biz dərin getmək lazımdır kimi siniflərdə daha çox.
>> Amma bu da Burada əhəmiyyətli Çünki biz
funksiyaları bir çox görürük Swift istifadə olunur ki,
ki, mahiyyətcə yoxdur Bu, biz var
bəzi nömrələri, nömrələri bəzi array.
Biz bu keçmək olacaq Bizim Mapper daxil array.
Və biz də olacaq bəzi funksiyası, keçmək
biz artıq burada müəyyən etdik.
Bu kvadrat olacaq.
Və biz sonra olacaq bu nömrələr bütün kvadrat
və bu nəticə ki saxlamayın.
>> Belə ki, bu halda biz müəyyən etdik bizim öz funksiyası Mapper çağırıb.
Amma bu dəqiq şey, Əslində, Swift daxil.
Bir sıra var funksiyaları xəritəsi çağırıb.
Bir xəritə funksiyası var, bir funksiyası azaltmaq var,
və filter funksiyası var, mahiyyətcə funksiyaları tətbiq edən
bir hər bir element bir şəkildə onları dəyişdirmək edin.
>> Auditoriya: Siz dəyişdirir olunur So başqa formata data
bir funksiya vasitəsilə
DAN Armendariz: Sağ.
Bəli, belə funksiyası biz qəbul edirik ki,
bir şəkildə data dəyişdirir.
Bu halda, biz ya idi bu squaring, və ya biz bunu cubing idi,
və ya, həqiqətən, biz çıxış edə bilər bütün bu barədə heç bir əməliyyat.
>> Amma mənə sonra necə göstərmək bildirin praktikada baxmaq üçün gedir.
Və yenə, mən çalışan alıram vaxt bit. mən deyiləm
bütün getmək mümkün olacaq burada ətraflı mənbə kodu.
Amma bunu gəlir.
Biz tezliklə kimi göndərmək lazımdır mümkün bu görüşdən sonra.
>> Amma bu nəzər alsaq, biz nömrələri bir siyahısı var ki, güman,
bu nömrələri bir sıra dəyişən adlı nömrələri.
Sonra biz bu çıxış etmək istəyirəm bu nömrələri filter əməliyyat.
Belə ki, filter bir yüksəkdir sifariş funksiyası
də bir sıra və bir funksiyası qəbul edir.
Və hər element haqqında array, bu funksiyanı yerinə yetirir.
>> Ki, funksiyası yekunları əgər doğru, bu maddə saxlayır.
Ki, funksiyası yalan qaytarır, bu maddə üz salır.
Və sonra bir siyahısını qaytarır ki, sonra bütün edilir
filtrelenen bu maddələrin.
>> Belə ki, başqa sözlə, bu eyni fikir, gradebook.
Biz siniflər bir sıra ola bilər bu dəyər deyilən nömrələri daxil.
100 və 70, və ola bilər 40, s və s.
Bu filter yoxdur xəbərdarlıq edir bu ki, sintaktik şəkər ki,
anonim funksiyası üçün.
Bu deyərək anonim funksiyası Mən qəbul edirəm parametri
bu halda, olacaq 70-dən çox
onda bu o deməkdir ki, doğru qayıdacaq ki, maddə Bu filtre saxlanılır.
Belə ki, bir az olsun Bu barədə daha konkret.
Mən ədəd bu array varsa və 100, 70, və 40 ibarətdir
Mən bu filter çıxış o hər biri əməliyyat.
Belə ki, ilk bir 100 bu dəyəri.
100-dən çox və ya bərabər daha 70, doğru olan
100 saxlanılır o deməkdir ki, bu serialın bu yeni surəti.
70 də keçir.
Amma 40 deyil.
Belə ki, passingCount nə geri elementləri 100 və array var 70--
100, vergül, 70.
Həmin yalnız iki idi saxlanılırdı maddələr.
Və belə səbəbi mən tez yolu ilə getdi yüksək sifariş bu cür bir çox
Bu ki, ümumi, çünki şeylər Siz Swift olduqca görəcəksiniz şey
tez-tez, bəzi əməliyyat reallaşdırır bu anonim funksiyası sintaksis istifadə.
>> Bəzi cool stuff var.
Açarları, Swift həqiqətən güclü Mən yalnız crazy, crazy güclü kimi deməkdir.
Siz keçid istifadə edə bilərsiniz Siz, həqiqətən, onlara müraciət edə bilər
cür crazy silsilələri, üçün, və kimi xülya heyəti yoxdur.
>> Amma son bir neçə dəqiqə, Mən uzaq irəli keçmək istəyirəm
və necə müəyyən bir nümunə göstərmək biz Swift istifadə iOS app yarada bilərsiniz.
Belə ki, siz yapýyorsun Bu, siz almaq lazımdır
Apple-nin at-- baxmaq sənədləşdirmə, onlar
həqiqətən yaxşı Dərsliklər bir çox ilk proqram yaratmaq üçün.
Mən bunu təşviq ki, onlar sizi, çünki
nə bütün addımlar məhz vasitəsilə bir iOS proqram yaratmaq üçün basın.
>> Lakin burada biz bu iOS app var.
Və bu olduqca sadə app həqiqətən var.
Mən bu run əgər, mənə göstərmək bildirin Siz bu kimi görünür nə.
Mahiyyətcə nə bütün var İnternet JSON fayl çıxarmaz
Mən bir server saxlanılır.
Və JSON fayl imkan images müəyyən
Məni vasitəsilə sonra dövrü üçün mənim app, mənim web server images.
>> Mən burada getNextImage var.
Bu internet bir resim yükləyir və sonra ekranda göstərilir.
>> Belə ki, olduqca sadə.
Amma burada məqsəd göstərmək üçün biz hər şeyi birləşdirmək bilər necə
CS50 sonuncu neçə həftə faktiki iOS proqram.
Başqa sözlə, bəlkə bir Siz nə etmək istəyirəm ki, hər şeyi
iOS proqram var ki, İnternet-dən data çəkmək olar
və istifadəçi bəzi məlumatları göstərir.
Ki, tamamilə nöqtəsidir Burada bu mənbə kodu.
>> Belə ki, haqqında belə bir çox var necə faktiki iOS inkişaf etmək.
Crazy sintaksis bir çox var biz olduqca hələ görməmişik ki,
bir sinif kimi, bir sinif həqiqətən edir.
Biz əsasən iqnor edə bilər dəfə gedir.
>> Amma biz olan var ki, qeyd Bu şeyi bir sıra ərzində
biz artıq kimi gördüm ki, xüsusi adları var funksiyaları.
Və biz o vermək düzgün adları funksiyaları
ki, iOS gözləyir bu bir az sehrli hiss edir.
Amma bir yaratmaq zaman iOS proqram var
xüsusi funksiyası adları var ki, telefon özü tərəfindən deyilir
proqram cəhd loading kimi əslində proses yaratmaq
ərizə çalışır.
Belə ki, yenə, çox şey var ki, mən bizim üçün burada ötürməyə var
bu barədə xüsusi danışmağa.
Amma bəlkə baxmaq üçün təşviq digər iOS seminar, həm də bəzi
Bunu Dərsliklər online izah çox daha yaxşı iş
xüsusi məlumat.
>> Amma biz hər şeyi bir neçə görmək olar ki, burada kod maraqlıdır.
Biz şərhlərdə əgər ki, görürsünüz.
Yeri gəlmişkən, bir mühüm şərhlərdə əgər haqqında şey
ki, ətrafında parantez Boolean ifadə isteğe bağlıdır.
Amma qıvrım aşırma, isteğe deyil nə qədər az və ya kodu bir çox xətləri
Bir əgər hesabatda var.
Siz hesabatları əgər ola bilməz Swift da qıvrım aşırma olmadan.
>> Bu, yaxşı, silly növ edir.
Amma ki, tarixi səbəbləri var.
Bu özünüz xilas ehtimal.
Məsələn bu kimi, siz bilməzsiniz ki, ətrafında qıvrım aşırma aradan qaldırılması
şərh əgər.
Həmin əslində tələb olunur.
Beləliklə, mən təşviq bu bir göz atın.
Amma bir daha çox var Mən istəyirəm ki, tikintisi
Swift haqqında göstərir ki, müqayisədə Swift 2.0 yeni
Swift eski versiyasını, olan budur.
Mən burada qoymaq idi harada görmək edək?
>> Belə ki, bu funksiya adlanır fetchJSON, bu funksiya
ki JSON çəkərək üçün məsuliyyət daşıyır yalnız belə olur URL olan fayl
Mənim CS50 IDE çalışan olunacaq.
Mən yalnız Apache başladı orada mənim JSON fayl qoymaq,
Mən sonra çəkmək üçün edə edirəm istifadə edərək internet data
bu funksiya və bu URL, olan telefon tərəfindən təmin edilir.
Bu tərəfindən təmin edir kitabxana zaman istifadə
Bəzi iOS app inkişaf edirik.
>> Bu qeyri-adi var ki, burada edək sintaktik tikinti gözətçi çağırıb.
Və həqiqətən bütün bu deyil Swift təsdiq bir yoldur
bəzi şeylər var ki, səndən əvvəl görüşüb
funksiyası qalan ilə davam etdirilir.
Belə ki, istifadə edərək, ola bilər Bu isteğe növü,
Mən URL aşkar ola bilər Bu NSURL funksiyası çalışan
və URL daxil saxlanılması daimi və sonra yoxlanılması
URL nil idi, görmək çünki isteğe növü qayıtmaq niyyətində idi.
Bu sıfır idi, onda mən bir səhv çap və sonra qayıtmaq.
>> Lakin əvəzinə, nə guard imkan verir bizə çox şey etmək
lakin bu olmasını təmin əslində belə ki, url
Düzgün NSURL tərəfindən müəyyən edilmişdir.
Və sonra, əgər bu artıq skips və bu
Siz davam imkan verir ki, url düzgün müəyyən edilmiş.
Amma bu halda ki, url düzgün müəyyən deyil,
bu funksiya bir səhv qaytarır əgər və ya digər gözlənilməz şey
əslində, bu qarovul tikintinin baş verir sonra çıxış ki, səhv etmək üçün imkan verir
və dərhal qayıtmaq.
Bəli?
>> Auditoriya: Belə ki cür bir sonra başqa əgər kimi?
DAN Armendariz: Bu cür var bir bəli, sonra başqa əgər kimi
bu url sonra ki, başqa Bu aşağıdakı hər şey üçün müəyyən.
Bu sonra, bu qarovul keçir həqiqətən məlumatları ilə dolacaq
və qalan istifadə Sizin funksiyası mənbə kodu.
Mən olacaq ki, şübhəli həmçinin bu gözətçi görmək üçün başlamaq.
Və nəzərə.
>> Belə ki, yalnız digər bir neçə baxaraq şeylər, burada bu doğru,
Sizcə, yalnız nə əsasında biz əvvəl söhbət?
>> Auditoriya: Bu siyahıda run lazımdır düşünürsünüz?
>> DAN Armendariz: Belə ki, yaxın.
Bu müəyyən bir funksiyası var.
Və biz funksiyası giren olunur burada bu funksiya bir arqument kimi.
>> Auditoriya: nil [işitilemez] əgər.
Belə ki, sağ, siyahıda var?
>> DAN Armendariz: səhv nil deyilsə, belə ki, mən hərəkət etmək belə is--.
Bəli, mən, həqiqətən, görmək bilməz bildirin burada sağa diyirləyin.
səhv olunur bir dəlildir bu anonim funksiyası keçdi.
Bu anonim funksiyası var.
Bu, heç bir adı var.
Amma biz bu üç qəbul olunur arqumentlər, data, cavab və səhv.
Və belə ki, etibarsız qayıtmaq üçün gedir bir şey qayıtmaq niyyətində deyil.
Bu məzmunu edir ki, funksiyası.
Və sonra biz daxili imkanı var bu dəlilləri hər funksiyası.
>> Belə ki, bir qasırğa var dil tur.
Amma bu ümid, inşallah almaq kimi
Dərsliklər bəzi nəzər Swift ilə iOS inkişafına xüsusi,
Siz getmək, xüsusilə də əgər Apple geliştirici web səhifə
Onlar, həqiqətən, yaxşı bir çox Dərsliklər siz başlamaq üçün.
Amma söhbət inşallah bu saat sintaksis haqqında özü verib
Əgər kifayət qədər ki, başlamaq üçün.
>> Biz bu mənbə bütün göndərmək olacaq seminar saytında kodu
mümkün, həmçinin slaydlar kimi belə ki, bütün insanlar üçün istinad var.
Layihələr lakin uğurlar.
Və gələn üçün çox təşəkkür edirəm.
>> [Alqış]