2015/12/30

Swift 2.0 : Танилцуулга хичээл

Wednesday, December 30, 2015 Posted by Orgilbat.A No comments


Swift бол Apple -с гаргасан нэн шинэ програмчлалын хэл юм. Swift 1.0 нь өнгөрсөн жилийн WWDC 2014 дээр анх зарлагдсан бол Swift 2.0 WWDC 2015 дээр танилцуулагдаж, тун саяхан буюу 12-р сарын 3-нд Apache License 2.0 лиценз бүхий нээлттэй эхтэй болжээ.

Энэ нь Swift “зөвхөн Mac OSX эсвэл iOS хөгжүүлэлтэнд зориулагдсан, хязгаарлагдмал” байхаа больж, мобайлаас сервер хүртэлх бүх орчинд ажиллах, ерөнхий зориулалтын түгээмэл хэл болохоор хөгжиж байна гэсэн үг.

Apple, шинэ хэлээ танилцуулахтайгаа зэрэгцүүлээд The Swift Programming Language гэсэн лавлах ном гаргасаныг заавал үзэхийг зөвлөж байна.

Гэхдээ энэ маш том ном (580 орчим хуудас) тул, төдий хэр их цаг зарцуулах боломжгүй, багахан боловч гол гол зүйлсийг хурдан хугацаанд, хялбархан ойлгоод авахыг хүссэн хэн бүхэнд уг бичвэр зориулагдсан болно.

Энэхүү хичээлд бид, Swift хэлний тогтмол, хувьсагч, урсгалын удирдлага, класс зарлалт болон бусад чухал ойлголтуудыг дурдаж, дасгал хийх ба үр дүнд нь энгийн үйлдэлтэй нэгэн тооцлоологч програмыг бүтээх юм. Мэдээж хэрэг уншигч таныг програмчлалын анхан шатны ойлголттой гэж үзэж байгаа болно.

Хичээлийн явцад дурдагдах кодыг ажиллуулахын тулд танд Mac компьютер, хамгийн сүүлд гарсан Xcode 7 хөгжүүлэлтийн орчин шаардлагатайг анхаарна уу. Xcode -ийн хуучин болон Pre-Release хувилбарууд дээр ажиллахгүй байж мэднэ, тиймээс хамгийн сүүлд гарсан хувилбарыг заавал суулгаарай.

Playground -ын тухай

Xcode 7 -г асаагаад, File\New\File гэсэн рүү ороод, iOS\Source\Playground гэдгийг сонгож Next товчин дээр дарна.




Файлынхаа нэрийг SwiftTutorial.playground гэж өгөөд, дараа нь өөртөө эвтэйхэн байрлалыг сонгож Create дээр дарж үүсгэнэ. Цаашид дурдагдах бүх код энэ файл дээр туршигдах тул, OSX -ийн Dock дээрээ ч юмуу, өөрт ойр газарт байрлуулаарай.

Хоосон, шинэ файлаас эхлэхийн тулд дотор нь бичигдсэн бүх зүйлийг устгачих.

Playground (плэйграунд) гэдэг бол Swift кодыг туршиж үзэхэхэд зориулагдсан, кодынхоо үр дүнг баруун талын хэсэг дээр мөр бүрээр нь харах боломжтой шинэ төрлийн файл юм.

Жишээ нь, дараах хэдэн мөрийг плэйграунд дээрээ бичиж өгнө үү :

let swiftTeam = 13
let iOSTeam = 54
let otherTeams = 48
let totalTeam = swiftTeam + iOSTeam + otherTeams

Дээрх мөрүүдийг бичиж байхдаа л үр дүнг нь хажуугийн хэсгээс харчихаж байгаа биз?
Ийм учраас л плэйграунд бол Swift хэлийг сурах хамгийн тохиромжтой зам юм. Шинэ API туршиж үзэх, ямар нэг алгоритм юмуу кодын загвар гаргах, чаарт зурах код байлаа гэхэд үр дүнгээ тэр дор нь харахад плэйграунд яг тохирно.

Хувьсагч ба Тогтмол

Дараах мөр кодыг плэйграундынхаа хамгийн доод талд бичээд үз :

totalTeam += 1

Энэ мөрийг нэмэнгүүт алдаа гарч байгааг анзаарав уу? Учир нь totalTeam тогтмол учраас, утгыг өөрчлөх боломжгүйгээс тэр юм. Swift хэлэнд тогтмолыг let гэсэн түлхүүр үгээр зарлаж өгдөг.
Хэрэв та totalTeam -г утгыг нь өөрчлөх боломжтой хувьсагч болгомоор байвал var гэсэн түлхүүр үгээр зарлах хэрэгтэй.
Иймд, totalTeam -г зарласан мөрийг доорх байдлаар өөрчил :

var totalTeam = swiftTeam + iOSTeam + otherTeams

Одоо ажиллаж байгаа биз.

Хамаагүй бага хязгаарлалттай юм чинь яагаад бүгдийг var -р зарлаж болдоггүй юм бол?” гэсэн бодол танд төрсөн байх. Буруу ч биш. Гэхдээ let -р зарлах боломжтой бол үргэлж тэгж бай. Компайлер, тогтмолоор зарласан зүйлсийг оновчтой байдлаар хөрвүүлж, санах ойд бага зай эзлэхээр болгодог. Иймд аль болох let -г хэрэглэ. Зөвхөн зайлшгүй хэрэгтэйд нь var -г сонго.

Төрлийн тодорхой ба тодорхой бус зарлалт

Дээр дурдагдсан тогтмол болон хувьсагчийн төрлийг тодорхой зааж өгөөгүй ч компайлер түүнийг автоматаар танихад хангалттай мэдээлэл тэнд байна.
Жишээ нь, swiftTeam13 гэсэн утга олгосон учраас, 13 нь Int төрлийнх гэдгийг компайлер мэдэж байгаа тул swiftTeam -ийн төрлийг Int гэж автоматаар танина.
Гэхдээ, хэрэв та хүсвэл төрлийг нь тодорхой зааж өгч болно. swiftTeam -г зарласан хэсгийн кодыг дараах байдлаар өөрчил :

let swiftTeam: Int = 13

Энэ бол тогтмолын төрлийг тодорхой заасан зарлалт. Харин урьд нь тодорхой бус зарлалттай байсан.
Гэхдээ та, төрлийг ингэж тодорхой заах уу, эсвэл компайлер автоматаар танивал дээр үү гэж эргэлзэж магадгүй. Бидний хувьд, тогтмол болон хувьсагчийн төрлийг аль болох компайлер автоматаар таних хэлбэрээр байвал илүү дээр гэж үздэг. Энэ нь кодыг илүү ойлгомжтой, эмх цэгцтэй харагдуулах сайн талтай. Иймээс сайх өөрчлөлтөө буцааж, тодорхой бус зарлалтаар нь үлдээе :

let swiftTeam = 13

Swift -ийн үндсэн төрлүүд, урсгалын удирдлага

Swift хэлэнд, бүхэл тоон утгад зориулан хэрэглэдэг Int төрлийн жишээг та үзлээ. Гэхдээ үүнээс гадна өөр олон төрөл бий.
Доор дурдагдах жишээ кодуудыг плэйграундын доор нэмж, бусад үндсэн төрлүүдтэй танилцацгаая :

Float болон Double төрөл

let priceInferred = 19.99
let priceExplicit: Double = 29.99

Бутархай тоон утгад хэрэглэдэг Float, Double гэсэн хоёр төрөл бий. Double -нь илүү нарийвчлалтай бөгөөд шууд бусаар зарлагдсан бутархай тоон утгыг энэ төрөл рүү хөрвүүлдэг. Өөрөөр хэлбэл priceInferred тогтмол мөн Double төрлийнх гэсэн үг.

Bool төрөл

let onSaleInferred = true
let onSaleExplicit: Bool = false

Бүүлийн утга Objective-C хэлэнд YES/NO гэдэг утга авдаг байсан бол Swift хэлэнд true/false утга авч байгааг анзаарав уу.

String төрөл 

let nameInferred = "Ноосон цамц"
let nameExplicit: String = "Ноосон өмд"

Стринг утга Objective-C хэлэнд @ тэмдгийн араас бичигддэг байсан бол Swift хэлэнд тэгэх шаардлагагүй болсон байна.

If нөхцөл, стринг утгын хэлхэлт

if onSaleInferred {
   print (“\(nameInferred) хямдралтай үнээр : \(priceInferred)”)
}
else {
   print (“\(nameExplicit) энгийн үнээр : \(priceExplicit)”)
}

Энэ бол If нөхцөлийн жишээ. Бусад програмчлалын хэлнүүдэд байдгаас нэг их ялгарах юмгүй. Шалгаж буй нөхцөлийн гадуур дугуй хаалт () байж ч болно, байхгүй ч болно. Харин урсгалыг багцлах гоё хаалт {}  заавал тавина. Нэг мөр байсан ч ялгаагүй.

Мөн энд nameInferred, priceInferred, nameExplicit, priceExplicit илэрхийллүүдийг стринг болгоод өөр стрингтэй хэлхэж print командаар хэвлэж үзүүлсэн байна.
Swift -д ямар нэг илэрхийллийг (тогтмол юмуу хувьсагчийг) стрингээр илэрхийлэх шаардлага гарвал :
\(таны_илэрхийлэл) гэсэн форматаар төлөөлүүлж болдог.

Илэрхийллийн адилаар, print үйлдлийн үр дүнг бас цонхны баруун талын хэсгээс харж болно. Хэрэв үр дүн тухайн мөрөндөө багтахгүй бол хураагдаж гурван цэгээр илэрхийлэгдэнэ. Энэ үед курсорыг тэр мөрөнд аваачиж нүд юмуу, дугуй айкон дээр дарж утгыг гүйцэд хараарай.



Энэ хүртэл бичигдсэн плэйграунд файлыг эндээс татаж авна уу.

[үргэлжлэлийг тун удахгүй]

0 comments:

Post a Comment