`map` on `Iterable` returns a lazy iterable — which is true?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Khi sử dụng hàm `map` trên một đối tượng có thể lặp lại (`Iterable`), nó sẽ trả về một đối tượng có thể lặp lại lazy. Điều này có nghĩa là kết quả của hàm `map` sẽ không được tính toán ngay lập tức, mà sẽ được tính toán khi bạn thực sự cần nó. Để lấy được kết quả của hàm `map`, bạn thường cần sử dụng phương thức `toList()` hoặc vòng lặp `for-in`. Ví dụ, nếu bạn có một danh sách các số và muốn tạo một danh sách các số bình phương, bạn có thể sử dụng hàm `map` như sau: ```swift

Lời giải
let numbers = [1, 2, 3, 4, 5]
let squares = numbers.map { $0 * $0 }
print(squares) // [1, 4, 9, 16, 25]

``` Tuy nhiên, nếu bạn muốn lấy được kết quả của hàm `map` ngay lập tức, bạn có thể sử dụng phương thức `toList()` như sau: ```swift

Lời giải
let numbers = [1, 2, 3, 4, 5]
let squares = numbers.map { $0 * $0 }.toList()
print(squares) // [1, 4, 9, 16, 25]

``` Tóm lại, hàm `map` trên `Iterable` trả về một đối tượng có thể lặp lại lazy, và bạn thường cần sử dụng phương thức `toList()` hoặc vòng lặp `for-in` để lấy được kết quả.

Cùng chủ đề