Kotlin : Collection Những Extension Functions Hay Ho
Bài đăng này đã không được cập nhật trong 6 năm
Giới thiệu
Đây là các Extension Functions nằm trong thư viện chuẩn được Kotlin cung cấp với nhiều tiện ích khác nhau sau quá trình làm và đọc mình thấy rất nhiều tiện ích hỗ trợ nên chia sẻ cùng anh em (mong anh anh nhẹ tay)
Bắt đầu nào
Các hàm làm việc với tổng thể
- forEach Thực hiện duyệt từng phần tử trong collection
var list = mutableListOf(3, 5, 6)
list.forEach {
println(it)
}
2.forEachIndexed Tương tự như forEach, tuy nhiên có thêm chỉ số của các phần tử:
var list = mutableListOf(3, 5, 6)
list.forEachIndexed {index: Int, value: Int ->
println("position $index: $value")
}
- any về true nếu có ít nhất 1 phần tử thỏa mãn điệu kiện
var list = mutableListOf(3, 5, 7)
list.any { it == 3 } // true
- all khác với any all thì phải tất cả các phần tử thoản mãn điều kiện truyền vào
var list = mutableListOf(3, 6, 9)
list.all { it % 3 == 0 } //true
- count Trả về số lượng phần tử thỏa mãn điều kiện
var list = mutableListOf(3, 5, 9)
list.count { it % 3 == 0 } // 2
- fold Tổng giá trị tính từ giá trị khởi tạo theo công thức trong hàm đến phần tử cuối cùng của mảng Như ví dự dưới đây 0 là giá trị khởi tạo, total là tổng của quá trình, i là giá trị của từng phần tử, lần lượt là 3, 5, 6
var list = mutableListOf(3, 5, 6)
val result = list.fold(0, { total: Int, i: Int ->
total + i
})
print(result) // 14
- foldRight cách định nghĩ giống như fold nhưng được duyệt từ cuối về đầu
var list = mutableListOf(3, 5, 6)
val result = list.foldRight(0, { total: Int, i: Int ->
total + i
})
print(result) // 14
Giá trị lần lượt của i sẽ là: 6, 5, 3
8.sumBy Trả về tổng của tất cả các phần tử nhưng được xử lý thông qua logic được truyền vào
var list = mutableListOf(3, 5, 7)
var result = list.sumBy {
it % 3
}
print(result) // 3
Lời kết
Còn khá nhiều cái hay khác nữa nhưng hẹn các bạn vào bài viết sau Cảm ơn mọi người rất nhiều
Refereces : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-collection/index.html
All rights reserved