[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 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")
    }
    

    Nguồn: Viblo


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.