Menu
CoddyTech

Toán tử chuỗi

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 75 trên 86.

Swift cung cấp các thuộc tính (property) và phương thức (method) tích hợp hữu ích, giúp bạn nhanh chóng thu thập thông tin về mảng (array) mà không cần viết vòng lặp (loop). Các toán tử trên dãy (sequence operators) này giúp bạn thực hiện những phép tính thông dụng với ít code nhất.

Thuộc tính count trả về số phần tử trong một mảng:

let scores = [85, 92, 78, 90]
print(scores.count)  // 4

Với mảng số, Swift cung cấp các phương thức tìm giá trị nhỏ nhất và lớn nhất. Các phương thức min() và max() trả về giá trị tùy chọn vì mảng rỗng không có giá trị nhỏ nhất hoặc lớn nhất:

let temperatures = [72, 68, 75, 80, 65]

if let lowest = temperatures.min() {
    print(lowest)  // 65
}

if let highest = temperatures.max() {
    print(highest)  // 80
}

Để tính tổng tất cả phần tử, hãy dùng phương thức reduce. Phương thức này kết hợp mọi giá trị, bắt đầu từ một giá trị ban đầu:

let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total)  // 60

0 là giá trị bắt đầu, còn + yêu cầu Swift cộng từng phần tử vào tổng đang tính. Kết hợp các toán tử này, bạn có thể dễ dàng tính giá trị trung bình:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86
challenge icon

Thử thách

Dễ
Viết hàm analyzeScores nhận scores và trả về một chuỗi tóm tắt các thống kê về mảng.

Dùng các toán tử trình tự để tính số lượng, giá trị nhỏ nhất, giá trị lớn nhất và giá trị trung bình của các điểm, sau đó định dạng chúng thành một chuỗi tóm tắt duy nhất.

Logic:

  1. Lấy tổng số phần tử bằng count
  2. Tìm giá trị nhỏ nhất bằng min()
  3. Tìm giá trị lớn nhất bằng max()
  4. Tính tổng bằng reduce(0, +) rồi chia cho số lượng để lấy giá trị trung bình
  5. Trả về một chuỗi đã định dạng chứa tất cả thống kê

Tham số:

  • scores ([Int]): Một mảng điểm số nguyên (đảm bảo có ít nhất một phần tử)

Giá trị trả về: Một chuỗi đã định dạng chứa các thống kê (String). Định dạng: "Count: X, Min: X, Max: X, Avg: X"

Ví dụ: Nếu scores là [85, 90, 78, 92], hàm sẽ trả về "Count: 4, Min: 78, Max: 92, Avg: 86".

Lưu ý: Giá trị trung bình cần được tính bằng phép chia số nguyên (không có chữ số thập phân).

Tự làm thử

func analyzeScores(scores: [Int]) -> String {
    // Viết code ở đây
}
quiz iconTự kiểm tra

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

Tự luyện tập: Playground Swift