[iOS] [Swift] Tổng hợp tất cả từ khóa trong ngôn ngữ Swift (Part 2)
Tiếp tục phần phần 1: https://viblo.asia/p/ios-swift-tong-hop-tat-ca-tu-khoa-trong-ngon-ngu-swift-part-1-E375zEAdlGW Trong phần này chúng ta sẽ tiếp tục với các từ khóa thường xuyên được sử dụng trong các câu lệnh. Keywords in Statements if : đảm bảo 1 hoặc nhiều điều kiện khi thực hiện 1 ...
Tiếp tục phần phần 1: https://viblo.asia/p/ios-swift-tong-hop-tat-ca-tu-khoa-trong-ngon-ngu-swift-part-1-E375zEAdlGW Trong phần này chúng ta sẽ tiếp tục với các từ khóa thường xuyên được sử dụng trong các câu lệnh.
Keywords in Statements
if : đảm bảo 1 hoặc nhiều điều kiện khi thực hiện 1 hoặc nhiều câu lệnh nào đó.
if 1 > 2 { print("This will never execute") }
else : Nếu không phải thằng A thì là thằng B thôi.
if val > 1 { print("val is greater than 1") } else { print("val is not greater than 1") }
return : thoát khỏi hàm luôn, và có thể trả về giá trị nào đó tuỳ chúng ta khai báo.
func doNothing() { return //Immediately leaves the context let anInt = 0 print("This never prints (anInt)") } func returnName() -> String? { return self.userName //Returns the value of userName }
guard : đảm bảo điều kiện nào đó đúng, vừa có thể unwrap biến optional. Thật ra xài if let cũng được, nhưng xài guard đỡ phải lồng vào trong 1 scope nhìn rối mắt.
private func printRecordFromLastName(userLastName: String?) { guard let name = userLastName, userLastName != "Null" else { //Sorry Bill Null, find a new job return } //Party on print(dataStore.findByLastName(name)) }
switch : xét và so sánh giá trị xem nó match với case nào, hoặc thích thì dùng if + else if + else.
let box = 1 switch box { case 0: print("Box equals 0") fallthrough case 1: print("Box equals 0 or 1") default: print("Box doesn't equal 0 or 1") }
case : một trường hợp trong câu lệnh switch.
let box = 1 switch box { case 0: print("Box equals 0") case 1: print("Box equals 1") default: print("Box doesn't equal 0 or 1") }
default : xét case từ trên xuống mà ko thấy cái nào dính thì bay vào default.
let box = 1 switch box { case 0: print("Box equals 0") case 1: print("Box equals 1") // In mỗi thằg này ra thôi default: print("Covers any scenario that doesn't get addressed above.") }
fallthrough : xét trên xuống, nếu khớp 1 case nào đó vẫn tiếp tục xét tiếp 1 case liền kề
let box = 0 switch box { case 0: print(0) // In ra 0 fallthrough case 1: print(1) // In ra 1 case 2: print(2) // Không có được in ra default: print("default") }
for : giúp lặp các phần tử trong 1 sequence hoặc array hoặc các kí tự trong 1 String.
for _ in 0..<3 { print ("This prints 3 times") }
in : đi chung với for ở trên
for _ in 0..<3 { print ("This prints 3 times") }
break : kết thúc chương trình trong loop, if hoặc switch
for idx in 0...3 { if idx % 2 == 0 { break } }
continue : trong vòng lặp nếu gặp continue thì nó sẽ bỏ qua trường hợp đó (ở đây trong câu lệnh if) rồi tiếp tục duyệt tiếp.
for idx in 0...3 { if idx % 2 == 0 { continue // Thoát khúc này thôi } print("This code never fires on even numbers") // Vẫn in ra nhé }
defer : sử dụng khi muốn đảm bảo thực thi 1 đoạn code nào đó ngay khi hàm kết thúc.
func test() { defer { print("2") // thằng này print sau } print("1") // thằng này print trước }
do : thực thi đoạn chương trình nào đó có khả năng xảy ra lỗi .
do { try expression //statements } catch someError ex { //Handle error }
repeat : Y chang do while trong C/C++. Thực thi đoạn chương trình ít nhất 1 lần trước khi lặp qua điều kiện
repeat { print("Always executes at least once before the condition is considered") } while 1 > 2
where : dùng để ghép với for kiểm tra xem có đúng điều kiện không, hoặc dùng cho 1 loại generic type phải conform đúng protocol nào đó.
protocol Nameable { var name: String { get set } } func createdFormattedName<T: Nameable>(_ namedEntity: T) -> String where T: Equatable { // Chỉ có thực thể nào mà vừa conform Nameable và Equatable thì mới dùng được hàm này return "This things name is " + namedEntity.name } for i in 0…3 where i % 2 == 0 { print(i) //Prints 0 and 2 }
while : loop điều kiện nào đó cho tới khi nó sai thì thôi.
while foo != bar { print("Keeps going until the foo == bar") }