Phương thức chứa
Thuộc phần Kiến thức nền tảng trong hành trình Swift của Coddy. Bài học 76 trên 86.
Khi làm việc với mảng (array), bạn thường cần kiểm tra xem một giá trị cụ thể có tồn tại hay không trước khi thực hiện hành động. Swift cung cấp phương thức (method) contains() cho mục đích này. Phương thức trả về true nếu tìm thấy phần tử, nếu không thì trả về false.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// Chúng ta có chuối!Cách này gọn hơn nhiều so với việc viết vòng lặp để tự tìm trong mảng. Phương thức này hoạt động với mọi kiểu mảng, dù mảng chứa chuỗi, số hay giá trị khác:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseMột trường hợp sử dụng phổ biến là xác thực đầu vào của người dùng bằng cách đối chiếu với danh sách các giá trị được phép:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Lựa chọn hợp lệPhương thức contains() cũng hoạt động với chuỗi để kiểm tra xem một chuỗi con có nằm trong một chuỗi dài hơn hay không:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueThử thách
DễBạn sẽ nhận được hai dòng đầu vào:
- Danh sách tên người dùng được phép, phân tách bằng dấu phẩy (ví dụ:
admin,user,guest,moderator) - Một tên người dùng cần kiểm tra
Kiểm tra xem tên người dùng có trong danh sách được phép hay không. Nếu có, hãy in ra Access granted. Nếu không, hãy in ra Access denied.
Các bước:
- Đọc danh sách phân tách bằng dấu phẩy và tách danh sách đó thành một mảng (array) chuỗi (string)
- Đọc tên người dùng cần kiểm tra
- Dùng phương thức
contains()để xác định tên người dùng có trong danh sách được phép hay không - In ra thông báo phù hợp dựa trên kết quả
Gợi ý: Dùng components(separatedBy:) để tách một chuỗi thành một mảng. Ví dụ:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Tự làm thử
// Đọc danh sách tên người dùng được phép, phân tách bằng dấu phẩy
let allowedList = readLine()!
// Đọc tên người dùng cần kiểm tra
let username = readLine()!
// TODO: Viết code bên dưới
// 1. Dùng components(separatedBy:) để tách allowedList thành một mảng (array)
// 2. Dùng contains() để kiểm tra username có trong mảng hay không
// 3. In ra "Access granted" hoặc "Access denied" tùy theo kết quảBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Các toán tử, phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpÔn tập: phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Hàm in raNội suy chuỗiĐầu vào từ dòngChuyển đổi kiểu dữ liệuÔn tập đến 120Ôn tập đúng hay sai3Giá trị tùy chọn
Giá trị tùy chọn là gìMở gói bằng if letGuard letToán tử gộp nilÔn tập: mở gói an toàn6Ra quyết định
Câu lệnh ifIf và elseÔn tập: máy tính đơn giảnCâu lệnh switchSwitch với khoảng giá trị9Vòng lặp
Vòng lặp for-inVòng lặp whileVòng lặp repeat-whileBreakContinueÔn tập: giai thừaDải giá trị trong vòng lặpVòng lặp lồng nhauÔn tập: đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: Danh sách sản phẩmÔn tập: Mảng đảo ngượcTuple15Trình theo dõi chi tiêu hằng ngày
Tổng quan về dự ánThoát chương trìnhTự luyện tập: Playground Swift