Scope Function In Kotlin

I. Khái niệm

  • Là function được thực thi trong một khối code bên trong phạm vi ngữ cảnh (context) của một Object. Giúp việc quản lý dễ dàng, dễ hiểu hơn.
  • Giúp cho code trở nên dễ đọc và tương đồng với ngôn ngữ tự nhiên hơn. Gồm 5 hàm let, also, run, apply, with.
  • Context của Object có thể là this hoặc it.

II. Những điểm khác biệt:

  • Giá trị trả về:
    • Trả về chính Object được tham chiếu đến: apply, also.
    • Trả về một lambda result: let, run, with.

  • Context Object
    • This: run, with, apply
    • It: let, also
                            


III. Các Scope Function

A. Let()

  • Khái niệm: Là một hàm phạm vi (scoping function): Sử dụng nó khi bạn muốn định nghĩa một biến trong một phạm vi cụ thể trong đoạn code. Nó cực kì hữu dụng giúp cho đoạn code "tự đóng gói" vì thế bạn sẽ không lo những biến này bị "leak" ra ngoài.
  • let() được sử dụng khá nhiều trong trường hợp checking null.
  • Ví dụ: 



B.  Apply()

  • Khái niệm: Định nghĩa một extension function cho tất cả các loại Object. Khi bạn gọi nó, nó sẽ gọi đoạn closure đã được truyền vào trong tham số và sau đó trả về đối tượng sau khi đoạn closure đó được chạy.
  • Ví dụ: 

  • Kết quả:


C. With()

  • Việc dùng with() khá thuận tiện khi bạn có thể gọi nhiều methods khác nhau trong cùng một đối tượng. Thay vì phải liên tục lặp lại việc gọi biến mỗi dòng, bạn có thể dễ dàng với with()
  • Ví dụ: 
  • Kết quả: 



D. Run()

  • Là sự kết họp gữa let và with
  • Tương tác trực tiếp vs object truyền vào

Dũng Trần

 



Nhận xét

Bài đăng phổ biến từ blog này

Nested and Inner Class in Kotlin

Callback In Kotlin

Class and Data Class in Kotlin