×

Kiểm tra điều kiện trong mảng với contains(where:) trong Swift

Trong lập trình Swift, việc kiểm tra điều kiện trong mảng là một thao tác thường xuyên và quan trọng. Swift cung cấp nhiều phương thức để thực hiện điều này, trong đó contains(where:) là một phương thức mạnh mẽ và linh hoạt, giúp bạn dễ dàng tìm kiếm phần tử trong một mảng dựa trên điều kiện cụ thể.

Giới thiệu về contains(where:)

Phương thức contains(where:) của Swift cho phép bạn xác định xem có bất kỳ phần tử nào trong một mảng thỏa mãn một điều kiện nhất định hay không. Thay vì chỉ kiểm tra sự tồn tại của một giá trị cụ thể, bạn có thể xác định một hàm điều kiện tùy ý.

Cú pháp

Cú pháp của contains(where:) như sau:

func contains(where predicate: (Element) -> Bool) -> Bool
  • predicate là một closure nhận phần tử của mảng và trả về một giá trị Bool thể hiện điều kiện bạn muốn kiểm tra.
  • Phương thức trả về true nếu có ít nhất một phần tử trong mảng thỏa mãn điều kiện; ngược lại, false nếu không có phần tử nào thỏa mãn.

Ví dụ sử dụng contains(where:)

Kiểm tra số chẵn trong mảng số nguyên

Giả sử bạn có một mảng số nguyên và bạn muốn kiểm tra xem có số chẵn nào trong mảng hay không. Bạn có thể sử dụng contains(where:) như sau:

let numbers = [1, 3, 5, 7, 8]

let hasEvenNumber = numbers.contains { $0 % 2 == 0 }

print(hasEvenNumber) // Output sẽ là true, vì 8 là số chẵn trong mảng

Kiểm tra sự tồn tại của chuỗi dài hơn 5 ký tự

Bạn có một mảng các chuỗi và muốn kiểm tra xem có chuỗi nào dài hơn 5 ký tự không:

let words = ["apple", "banana", "kiwi", "strawberry"]

let hasLongWord = words.contains { $0.count > 5 }

print(hasLongWord) // Output sẽ là true, vì "banana" và "strawberry" dài hơn 5 ký tự

Kiểm tra một mảng đối tượng

Giả sử bạn có một mảng đối tượng phức tạp hơn, chẳng hạn như User, và bạn muốn kiểm tra xem có người dùng nào trên 18 tuổi không:

struct User {
    let name: String
    let age: Int
}

let users = [
    User(name: "Alice", age: 17),
    User(name: "Bob", age: 20),
    User(name: "Charlie", age: 16)
]

let hasAdult = users.contains { $0.age > 18 }

print(hasAdult) // Output sẽ là true, vì Bob trên 18 tuổi

Lợi ích của contains(where:)

  • Linh hoạt: Bạn có thể kiểm tra bất kỳ điều kiện nào, không chỉ là giá trị cụ thể.
  • Dễ đọc: Code sử dụng contains(where:) thường dễ đọc và dễ hiểu hơn, đặc biệt khi làm việc với các mảng phức tạp.
  • Hiệu suất: Thay vì duyệt tất cả các phần tử trong mảng, contains(where:) sẽ dừng ngay khi tìm thấy một phần tử thỏa mãn điều kiện, do đó tiết kiệm tài nguyên.

Kết luận

Phương thức contains(where:) trong Swift là một công cụ hữu ích và mạnh mẽ, cho phép bạn linh hoạt kiểm tra các điều kiện trong mảng một cách dễ dàng và hiệu quả. Bằng cách sử dụng contains(where:), bạn có thể nhanh chóng xác định sự tồn tại của các phần tử trong mảng thỏa mãn những điều kiện tùy ý, giúp cho mã nguồn của bạn trở nên sạch sẽ và dễ bảo trì hơn.

Comments