Tạo tập hợp
Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 18 trên 56.
Set là một tập hợp không có thứ tự gồm các giá trị duy nhất. Mọi phần tử đều có cùng kiểu dữ liệu, không cho phép phần tử trùng lặp và thứ tự lặp không thể dự đoán.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (bỏ giá trị "red" bị trùng)Chú thích kiểu Set<String> là bắt buộc trong dạng literal vì nếu đứng riêng, ["a", "b"] sẽ được suy luận là một Array.
Ba thao tác cốt lõi: contains, insert và remove. Hai thao tác sau trả về thông tin cho biết thay đổi có ý nghĩa hay không.
colors.insert("yellow") // thêm phần tử này
colors.insert("red") // đã có, nên không thay đổi gì
colors.contains("green") // true
colors.remove("blue") // trả về "blue" hoặc nil nếu không cóTạo tập hợp (set) từ mảng (array) giúp loại bỏ phần tử trùng lặp chỉ trong một bước:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 phần tử, thứ tự chính xác có thể thay đổiThử thách
Người mớiĐọc một dòng đầu vào: danh sách từ được phân tách bằng dấu phẩy (có thể có từ trùng lặp).
In ra ba dòng:
- Số lượng từ duy nhất (dùng
Set) - Các từ duy nhất được sắp xếp theo thứ tự bảng chữ cái và nối bằng
, truenếu đầu vào chứa từswift, nếu không thì làfalse(dùngcontains)
Với đầu vào swift,ruby,go,swift,go,rust, đầu ra là:
4
go,ruby,rust,swift
trueTự làm thử
let words = readLine()!.components(separatedBy: ",")
// TODO: dùng Set để loại bỏ phần tử trùng lặp, in ra số lượng, nối các phần tử đã sắp xếp và kiểm tra xem có chứa chính xác đoạn văn bản trong hướng dẫn không
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 Logic và luồng thực thi
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏiTự luyện tập: Playground Swift