Tai lieu lap trinh IOS bang tieng viet swift 2.0

52 536 1
Tai lieu lap trinh IOS bang tieng viet  swift 2.0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0 Tai lieu lap trinh IOS bang tieng viet swift 2.0

SWIFT 2.0 Page of 52 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM Mục Lục I Cơ lập trinh Swift A Hằng số biến Khai báo biến Tên Hằng Tên Biến Print biến B Integer Giá trị cao Interger Int UInt C Kiểu Float kiểu Double D Kiểu Safety Kiểu Inference E Chuyển đổi kiểu số(Numeric Type Conversion) Chuyển kiểu số nguyên(Integer Conversion) Chuyển kiểu Int với Float/Double F Kiểu Aliases 10 G Kiểu Boolean 10 H Kiểu Tuple 11 I Optional 11 J Error Handling 11 II Toán tử 12 Terminology(Thuật ngữ) 12 Assignment Operator(Toán tử gán) 12 Arithmetic Operators(Toán tử toán học) 13 Remainder Operator(Toán tử số dư) 13 Floating-Point Remainder Calculations(Toán tử số dư thập phân) 13 Increment and Decrement Operators(Toán tử tăng giảm dần) 14 Compound Assignment Operators(Toán tử gán phức hợp) 14 Comparison Operators(Toán tử so sánh) 14 Ternary Conditional Operator(Toán tử điều kiện tam phân) 15 10 Nil Coalescing Operator(toán tử kết hợp nil) 15 11 Range Operators(Toán tử phạm vi) 15 12 Logical Operators(Toán từ logic) 16 13 Logical AND Operator(Toán tử Logic AND) 16 14 Logical OR Operator(Toán tử Logic OR) 17 III Kiểu String and Kiểu Character 17 A String Literal(Chuỗi kí tự) 18 B Khởi tạo chuỗi 18 C String Mutability(Biến đổi chuỗi) 18 D Character 18 E Interpolation(nội suy chuỗi) 19 F Counting Character 19 IV Collection Type 19 A Array(mảng) 20 Iterating Over an Array(Duyệt qua mảng) 21 B Set 21 Thao tác 21 Performing Set Operations 22 Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM Set Membership and Equality 23 C Dictionary 24 V Control Flow 25 A For-In 25 B While Loops 27 While 27 Repeat-While 27 If 27 Swich 28 Where 28 C Control Transfer Statements 29 Continue 29 Break 29 Fallthrough 29 VI Function 30 A Defining and Calling Functions 30 B Function Parameters and Return Values 30 C Func kiểu trả 30 D Func có kiểu trả 31 E Func nhận tham số có kiểu trả 31 F Func nhận nhiều tham số có kiểu trả 31 G Func đếm kí tự chuỗi 31 H Func trả nhiều giá trị 32 I Func nhiều tham số Variadic 32 J Func InOut 33 K Biến Func 33 VII Closure 33 Closure Expressions 34 Closure Expression Syntax 34 VIII Enumeration(Liệt Kê) 35 Enumeration Syntax 35 Matching Enumeration Values with a Switch Statement 35 IX Classes and Structures 36 Comparing Classes and Structures 36 B Class and Structure Instances 37 X Subscript 38 A Subscript Syntax 38 XI Inheritance(Kế Thừa) 39 A Defining a Base Class 39 XII Property 39 XIII Method 39 A Subclass(lớp con) 40 B Overriding(ghi đè) 40 C Preventing Overrides(Ngăn ghi đè) 41 XIV Initialization(Khởi tạo) 41 XV Deinitialization(Hàm Huỷ) 41 XVI Optional Chaining 42 Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM XVII Handling Error 44 A Representing Errors 44 B Throwing Errors 44 C Catching and Handling Errors 44 XVIII Tổng hợp điểm khác Swift 2.0 46 A Defer 46 B Repeat-While 46 C Continue 46 D Where 47 E Fallthrough 47 F Guard 47 G Set 48 Khai Báo 48 Đếm Phần tử 48 Xoá Phần tử 48 Kiểm tra phần tử 48 Toán tử 49 Set Membership and Equality 49 H Handling Error 50 Enum 50 Throws 50 Do-Catch 50 Để học khoá đầy đủ chuyên sâu bạn tham gia khoá học lập trình iOS trung tâm đào tạo tin học KhoaPham 50 Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM I.Cơ lập trinh Swift Swift ngôn ngữ lập trình cho phát triển ứng dụng iOS, OS X, Watch OS, Swift có nhiều điểm giống với Objective C Swift cung cấp kiểu Int cho số nguyên, Double Float cho dồ thực , Bool cho giá trị True False String cho chuỗi kí tự Swift cung cấp kiểu Collection Array, Set Dictionary để quản lý dạng danh sách mảng Swift sử dụng biến để lưu trữ tham chiếu giá trị tên xác định Swift sử dụng nhiều giá trị không thay đổi gọi số mạnh nhiều so với số C Hằng số sử dụng giúp cho code rõ ràng an toàn lúc bạn làm việc với giá trị mà không cần thay đổi Ngoài kiểu quen thuộc , Swift giới thiệu kiểu hoàn toàn Objective C, kiểu Tuple Tuple cho phép bạn tạo gom nhóm giá trị không kiểu liệu Tuple trả nhiều giá trị từ hàm giá trị Swift giới thiệu kiểu Optional để xử lý trường hợp giá trị Optional có giá trị giá trị Optional tương tự sử dụng nil với pointer objective C Optional an toàn tính mạnh mẽ Swift Swift muốn bạn phải rõ ràng kiểu giá trị trình code Điều cho phép bạn nắm bắt sửa lỗi sớm tốt trình phát triển A.Hằng số biến Hằng giá trị không thay đổi sau khai báo Biến giá trị thay đổi giá trị khác cần 1.Khai báo biến Hằng biến phải khai báo trước sử dụng Bạn phải khai báo với từ khoá let biến với từ khoá var //Hằng số let hangso = 10 //Biến var bien = 20 Bạn khai báo nhiều nhiều biến sau: Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM //Khai báo nhiều nhiều biến dòng var a = 1, b = 2, c = Bạn cung cấp kiểu khai báo biến hằng, để rõ ràng cho kiểu giá trị Được viết dấu hai chấm phía sau tên biến tên var xinchao:String Ở đọc sau: “khai báo biến gọi xinchao có kiểu String” Như ta gán chuỗi kí tự vào cho biến xinchao Bây ta gán chuỗi kí tự vào cho biến xinchao: xinchao = "HelloWorld" Bạn khai báo nhiều biến có kiểu sau: //Khai báo nhiều biến có kiều dòng var x, y, z:Double 2.Tên Hằng Tên Biến Tên tên biến chứa hầu hết character(kí tự), bao gồm kí tự Unicode //Tên Hằng Biến let π = 3.14159 let 你好 = "你好世界" let �� = "dogcow" Tên tên biến chứa kí tự khoảng trắng, ký hiệu toán học, mũi tên bắt đầu số Khi bạn khai báo một biến có kiểu định, bạn khai báo lại với tên, thay đổi kiểu khác Bạn thay đổi giá trị biến có kiểu //Thay đổi giá trị biến xinchao từ HelloWorld thành KhoaPham.Vn xinchao = "KhoaPham.Vn" Với giá trị thay đổi khai báo 3.Print biến Bạn print trước kết biến để xem kiểm tra Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM //Print Hằng Biến print(xinchao) //kết quả: "KhoaPham.Vn" Ở Swift ta có hàm in print, println với Swift 2.0 hàm print Ta dùng print để in thông điệp phức tạp Bao gồm giá trị biến //Print thông điệp phức tạp print("Khoá Học iOS Trung Tâm \(xinchao)") //Kết quả: “Khoá Học iOS Trung Tam KhoaPham.Vn” B.Integer Là số nguyên Swift cung cấp Sign Unsign integer mẫu 8, 16, 32 64 bit 1.Giá trị cao Interger Bạn kiểm tra giá trị cao kiểu integer với thuộc tính Max var maxValue:UInt8 = UInt8.max //kết : 255 2.Int Bạn không cần phải chọn kích thước cụ thể Int thay hết tất Trừ bạn muốn chọn kích thước cụ thể integer Nên sử dụng Int cho giá trị sô nguyên để hỗ trợ đoạn mã quán khả tương thích var max:Int = Int.max //Kết quả: 9223372036854775807 3.UInt Bạn không cần phải chọn kích thước cụ thể UInt thay hết tất Trừ bạn muốn chọn kích thước cụ thể integer Nên sử dụng UInt cho giá trị số nguyên dương để hỗ trợ đoạn mã quán khả tương thích var max2:UInt = UInt.max //Kết quả: 18446744073709551615 C.Kiểu Float kiểu Double Là dạng phân số Có thể lưu trữ số thập phân mà kiểu integer không lưu trữ được.Swift cung cấp kiểu là: - Float(32-bit) - Double(64-bit) //Giá trị lưu trữ lớn kiểu float var float:Float = FLT_MAX //Kết quả: 3.402823e+38 Page oftrị52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ //Giá lưu trữ lớn kiểu double var double:Double = DBL_MAX //Kết quả: 1.797693134862316e+308 SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM D.Kiểu Safety Kiểu Inference Swift ngôn ngữ lập trình an toàn Vì Swift muốn bạn phải khai báo rõ ràng kiểu giá trị Nếu có bạn khai báo biến kiểu String bạn truyền giá trị kiểu Int ngược lại Bởi Swift thực kiểm tra kiểu (type check) biên dịch báo hiệu kiểu không phù hợp lỗi Điều cho phép bạn nắm bắt sửa lỗi sớm tốt Type check giúp bạn tránh lỗi bạn làm việc với kiểu giá trị khác Tuy nhiên, nghĩa bạn phải xác định kiểu biến mà bạn khai báo Nếu bạn không định kiểu giá trị, Swift sử dụng kiểu Inference để tìm kiểu thích hợp dựa giá trị mà bạn cung cấp Kiểu Inference đặt biệt hữu ích bạn khai báo một biến có giá trị ban đầu //Kiểu Inference hiểu kiểu String var chuoi = "KhoaPham.vn" //Kiểu Inference hiểu kiểu Int var soInt = 23 E.Chuyển đổi kiểu số(Numeric Type Conversion) Chuyển kiểu Integer kiểu đồng để phù hợp tình sử dụng Tránh tính trạng tràn liệu, tối ưu hoá nhớ 1.Chuyển kiểu số nguyên(Integer Conversion) Ở ví dụ so1 so2 có kiểu số nguyên khác nhau, ta phải ép kiểu so1 sang kiểu với so2 kiểu Int16 let so1: Int8 = let so2: Int16 = 1500 let tong = so2 + Int16(so1) 2.Chuyển kiểu Int với Float/Double Ở ví dụ so3 có kiểu Int so4 có kiểu Double, ta phải ưu tiên ép kiểu Int sang Double //Int and Float/Double let so3 = let so4 = 0.2356 let tong2so = Double(so3) + so4 //Kết quả: 2.2356 Page of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM F.Kiểu Aliases Thay kiểu có Được khai báo với từ khoá typealias //Kiểu Aliases typealias alias = UInt32 var so5:alias = Ta thấy kiểu Aliases có tên alias nhận kiểu UInt32 biến so5 có kiểu alias Thực chất biến so5 nhận kiểu UInt32 thông qua alias Từ ví dụ ta thấy kiểu aliases hữu ích muốn để cập đến kiểu tồn với tên khác G.Kiểu Boolean Đây kiểu trả hai giá trị True False //Kiểu Boolean let dung = true let sai = false Thường sử dụng nhiều trường hợp so sánh, câu lệnh if if sai{ print("Giá trị true") }else{ print("Giá trị false") } //Kết quả: "Giá trị false" Trong trường hợp bạn dùng câu lệnh if để so sánh giá trị kiểu số: let kieuso = //Trường hợp sai xuất lỗi if kieuso{ } //Trường hợp if kieuso == 1{ } Page 10 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM X.Subscript Lớp (class) , cấu trúc (structure) , kiểu liệt kê (enumaration) định nghĩa subscript, phím tắt để truy cập vào phần tử tập hợp, danh sách, chuỗi Bạn sử dụng subscripts để thiết lập lấy giá trị index mà không cần phương thức riêng biệt cho thiết lập phục hồi A.Subscript Syntax Subscripts cho phép bạn truy vấn thể kiểu cách viết nhiều giá trị dấu ngoặc vuông sau tên thể Cú pháp chúng tương tự cho cú pháp phương thức thể cú pháp thuộc tính tính toán Bạn viết định nghĩa subscript với từ khóa subscript, định nhiều tham số đầu vào kiểu trả về, cách phương thức thể Không giống phương thức thể hiện, kí hiệu đọc-ghi hay chỉ-đọc Hành vi truyền đạt getter setter cách thuộc tính tính toán: //Subscript đọc ghi subscript(index: Int) -> Int{ get{ //Return giá trị thích hợp } set(giatri){ //Thực } } //subscript đọc subscript(index: Int)->Int{ //Return giá trị thích hợp } Ví dụ Subcript đọc: //subscript đọc struct AStruct { let a:Int subscript(index: Int)-> Int{ return a * index } } let b = AStruct(a: 3) print("\(b[3])") //Kết quả: "9" Page 38 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM XI.Inheritance(Kế Thừa) Một Class kế thừa (inherit) method, property, đặc tính khác từ Class khác Khi Class kế thừa từ lớp khác, Class kế thừa gọi Class (subclass), Class kế thừa gọi Class cha (superclass) Kế thừa hành vi để phân biệt lớp từ kiểu khác Swift Class Swift gọi truy cập method, property, subscript thuộc class cha chúng cung cấp phiên ghi đè thân chúng với method, property, subsript để tinh chỉnh hay thay đổi hành vi chúng Swift giúp đảm bảo việc ghi đè bạn xác cách kiểm tra định nghĩa ghi đè có định nghĩa phù hợp với class cha Class thêm quan sát thuộc tính với thuộc tính kế thừa để thông báo giá trị thuộc tính thay đổi Quan sát thuộc tính thêm vào thuộc tính nào, cho dù ban đầu định nghĩa thuộc tính lưu trữ thuộc tính tính toán A.Defining a Base Class //Kế thừa class AClass{ var a = var name: String{ return "KhoaPham.Vn, số: \(a)" } func tinh(){ } } let BClass = AClass() print("\(BClass.name)") //Kết quả: "KhoaPham.Vn, số: 5" XII.Property Property thuộc tính đối tượng class Nguoi { var ten:String = "" var tuoi:Int = } XIII.Method Page 39 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM Method function liên quan tới đối tượng class Nguoi { var ten:String = "" var tuoi:Int = func di(){ } func an(){ } func ngu(){ } } A.Subclass(lớp con) Lớp (Subclassing) hành động lớp dựa lớp có Các lớp thừa hưởng đặc tính từ lớp có, sau bạn tinh chỉnh Bạn thêm đặc tính cho lớp Để lớp có lớp cha, viết tên lớp trước tên lớp cha, cách dấu hai chấm: class SomeSubclass: SomeSuperclass { // subclass definition goes here } Ví dụ: //SubClass class CClass: AClass{ var b = 10 func tinh()-> Int { return a + b } } let getClass = CClass() print("\(getClass.tinh())") //Kết quả: "15" B.Overriding(ghi đè) Bạn ghi đè lên thể hay thuộc tính lớp thừa kế để cung cấp getter //Ghi đè class classOveride:CClass{ override var name: String{ return super.name + ", WePro.Vn, số: \(b)" } } let over classOveride() Page 40 of= 52 KhoaPham.Vn | Hotline: 094 276 4080 print("\(over.name)") //Kết quả: "KhoaPham.Vn, số: 5, WePro.Vn, số: 10" Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM setter tùy chỉnh riêng bạn cho thuộc tính đó, để thêm quan sát thuộc tính phép thuộc tính ghi đè để quan sát giá trị thuộc tính ngầm thay đổi C.Preventing Overrides(Ngăn ghi đè) Bạn ngăn chặn phương thức, thuộc tính, subscript bị ghi đè cách đánh dấu final – cuối Làm điều cách viết sửa đổi final trước từ khoá giới thiệu phương thức, thuộc tính, subscript (như final var, final func, final class func, final subscript) Bất kỳ nỗ lực để ghi đè lên thức phương thức, thuộc tính, subscript lớp báo cáo lỗi biên dịch thời gian Phương thức, thuộc tính, hay subscript mà bạn thêm vào lớp phần mở rộng đánh dấu cuối định nghĩa phần mở rộng Bạn đánh dấu toàn lớp cuối cách viết chỉnh sửa final trước từ khoá class lớp định nghĩa (final class) Bất thi lớp con, lớp cuối cùng, báo cáo lỗi thời gian biên dịch XIV.Initialization(Khởi tạo) Init bắt buộc khởi tạo thuộc tính đối tượng, đối tượng khởi tạo class Nguoi { var ten:String = "" var tuoi:Int = init(Ten:String, Tuoi:Int){ ten = Ten tuoi = Tuoi } } var nguoi2:Nguoi = Nguoi() //Missing argument for parameter 'Ten' in call var nguoi1:Nguoi = Nguoi(Ten: "Le Lam", Tuoi: 26) Ở ví dụ khởi tạo đối tượng nguoi1 bắt buộc ta phải truyền tham số Ten Tuoi class Nguoi ta khởi tạo hàm init Còn nguoi2 báo lỗi ta chưa truyền vào tham số Ten Tuoi XV.Deinitialization(Hàm Huỷ) Page 41 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM Một deinitializer gọi trước thể lớp giải phóng Bạn viết deinitializers với từ khóa deinit, tương tự cách khởi tạo – intializers – viết với từ khóa init Deinitializers có sẵn kiểu lớp class Nguoi { var ten:String = "" var tuoi:Int = init(Ten:String, Tuoi:Int){ ten = Ten tuoi = Tuoi } deinit{ print("Giá trị nil") } } var nguoi1:Nguoi = Nguoi(Ten: "Le Lam", Tuoi: 26) var nguoi2:Nguoi? = Nguoi(Ten: "KhoaPham", Tuoi: 28) nguoi2 = nil //Nguoi2 có giá trị //đã giải phóng thực thi câu lệnh deinit XVI.Optional Chaining Optional Chaining trình để truy vấn gọi property, method, subscript vào optional mà nil Nếu optional có chứa giá trị, class Nguoi{ var Ten:String = "Lam" var Tuoi:Int = 26 } class Nha{ var nguoi:Nguoi? } //Gọi gián tiếp let nha = Nha() if let nguoi = nha.nguoi?.Ten{ print("Tên: \(nguoi)") }else{ print("nguoi có giá trị nil") } //kết quả: "nguoi có giá trị nil" //Gọi trực tiếp nha.nguoi = Nguoi() if let nguoi = nha.nguoi?.Ten{ print("Tên: \(nguoi)") }else{ print("nguoi giá trị") Page 42 of 52 KhoaPham.Vn | Hotline: 094 276 4080 } //kết quả: "Tên: Lam" Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM thuộc tính, phương thức, kí hiệu gọi thành công; optional nil, thuộc tính, phương thức, kí hiệu gọi trả nil Nhiều truy vấn nối lại với nhau, toàn chuỗi thất bại liên kết chuỗi nil Khi gọi gián tiếp nha.nguoi?.Ten ta khai báo có dấu “?” nên giá trị nil Còn gọi trực tiếp nha.nguoi = Nguoi() lúc có giá trị Page 43 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM XVII.Handling Error Là trình xử lý lỗi khắc phục từ lỗi chương trình Swift cung cấp first-class hỗ trợ việc ta xuất lỗi, bắt lỗi, tuyên truyền khắc phục lỗi chạy A.Representing Errors Enumeration đặc biệt thích hợp để mô hình hoá nhóm điều kiện lỗi, với giá trị liên quan để biết thêm chất lỗi truyền vào enum loiMaHoa:ErrorType{ case Empty case Short } B.Throwing Errors Chỉ functionn method ném lỗi func mahoaPassword(str:String, password:String) throws ->String{ guard password.characters.count > else{throw loiMaHoa.Empty} guard password.characters.count >= else{throw loiMaHoa.Short} let mahoa = password + str + password return String(mahoa.characters.sort()) } C.Catching and Handling Errors Page 44 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM do{ let chuoimahoa = try mahoaPassword("Lam", password: "123456") print(chuoimahoa) }catch loiMaHoa.Empty{ print("Bo Trong") }catch{ print("Loi Phat Sinh") } str = “” xuất lỗi Empty Page 45 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM XVIII.Tổng hợp điểm khác Swift 2.0 A.Defer //defer func printABC(a:String, b:String, c:String){ print(a) defer{ print(b) } print(c) } printABC("A", b: "B", c: "C") //Kết Quả : “A” “C” “B” B.Repeat-While //Repeat-While var a = repeat{ a=a+1 print(a) } while a < //Kết quả: //Kết quả: //Kết quả: //Kết quả: C.Continue let chuoi = "say you do" var catchuoi = "" for kitu in chuoi.characters{ switch kitu{ case "a","o"," ": continue default: catchuoi.append(kitu) } } print(catchuoi) //Kết quả: "syyud" Page 46 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM D.Where //where let wh = (1,4) switch wh{ case let(x,y) where x == y: print("\(x) = \(y)") case let(x,y) where x > y: print("\(x) > \(y)") case let(x,y) where x < y: print("\(x) < \(y)") } //Kết quả: "1 < 4" E.Fallthrough //Fallthrough let soF = var chuoiF = "" switch soF{ case 2, 5, 6, 7: chuoiF += "Ket Qua \(soF)" fallthrough default: chuoiF += " Chay" } print(chuoiF) //Kết quả: "Ket Qua Chay" F.Guard guard a == b else{ print("Khác Nhau") return } Page 47 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM G.Set 1.Khai Báo //Cách 1: var set = Set() set.insert("Chó") set.insert("Chó") //Cách 2: var set2:Set = ["Cúc", "Lan", "Hồng", "Huệ"] 2.Đếm Phần tử //Đếm số phần tử Set print("Số Phần Tử: \(set2.count)") //Kết Phần Tử: 4" if let quả: xoa "Số = set2.remove("Lan"){ print("Đã Xoá: \(xoa)") }else{ print("Không Có Phần Tử") } //Kết quả:"Đã Xoá: Lan" 3.Xoá Phần tử 4.Kiểm tra phần tử if set2.contains("Cúc"){ print("Đã Có") }else{ print("Chưa Có") } //Kết quả: "Đã Có" Page 48 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM 5.Toán tử let SoChan:Set = [0,2,4,6,8] let giatri:Set = [0,4,9] //Kết Hợp Set lại với SoLe.union(SoChan).sort() //Kết quả: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] //Hợp phần tử giống SoLe.intersect(SoChan).sort() //Kết quả: [] //Những phần tử riêng biệt Set SoLe so vơi Set giatri SoLe.subtract(giatri).sort() //Kết quả: [1,3,5,7] //Hợp Set lại bỏ phần tử giống SoLe.exclusiveOr(giatri).sort() //Kết quả: [0,1,3,4,5,7] Set Membership and Equality let b:Set = ["Cúc", "Huệ", "Lan"] let c:Set = ["Hồng", "Hướng Dương", "Sen", "Súng"] //Kiểm tra b nằm a b.isSubsetOf(a) b.isSubsetOf(a) //Kiểm tra a bao b a.isSupersetOf(b) //Kết quả: true //Kiểm tra b có giao với c b.isDisjointWith(c) //Kết quả: true Page 49 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM H.Handling Error 1.Enum //Enum enum loiMaHoa:ErrorType{ case Empty case Short } 2.Throws //Func phát sinh lỗi func mahoaPassword(str:String, password:String) throws ->String{ guard password.characters.count > else{throw loiMaHoa.Empty} guard password.characters.count >= else{throw loiMaHoa.Short} let mahoa = password + str + password return String(mahoa.characters.sort()) } 3.Do-Catch //thực bắt lỗi do{ let chuoimahoa = try mahoaPassword("Lam", password: "123456") print(chuoimahoa) }catch loiMaHoa.Empty{ print("Bo Trong") }catch{ print("Loi Phat Sinh") } Để học khoá đầy đủ chuyên sâu bạn tham gia khoá học lập trình iOS trung tâm đào tạo tin học KhoaPham Khoá học iOS bản: http://khoapham.vn/khoa-hoc-laptrinhios.html Khoá học iOS nâng cao: http://khoapham.vn/lap-trinh-ios-nang-cao.html Page 50 of 52 KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 Page 51 of 52 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ SWIFT 2.0 Page 52 of 52 TRUNG TÂM ĐÀO TẠO TIN HỌC KHOA PHẠM KhoaPham.Vn | Hotline: 094 276 4080 Lưu Hành Nội Bộ [...]... sử dụng các toán tràn Swift, như được mô tả trong Overflow Operators Không giống như C, Swift cho phép bạn thực hiện tìm số dư (%) tính trên số phẩy động Swift cũng cung cấp hai toán tử phạm vi (a

Ngày đăng: 22/06/2016, 07:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan