+2

Kotlin : Collection Những Extension Functions Hay Ho

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ể
  1. 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")
  }
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí