Làm chủ các hàm phạm vi của Kotlin: let, run, with, apply, and also

Giới thiệu
Kotlin đã trở thành ngôn ngữ lập trình phổ biến để phát triển ứng dụng Android và hơn thế nữa, cung cấp cú pháp hiện đại, biểu cảm và ngắn gọn. Một trong những tính năng mạnh mẽ của Kotlin là các hàm phạm vi của nó, cho phép bạn cấu trúc và đơn giản hóa mã của mình. Bài đăng trên blog này sẽ đi sâu vào năm hàm phạm vi được sử dụng phổ biến nhất trong Kotlin: let, run, with, apply và also. Chúng tôi sẽ giải thích cách sử dụng của chúng, cung cấp các ví dụ về mã và thảo luận về sự khác biệt giữa chúng.
cho phép
Hàm 'let' là một hàm mở rộng có thể áp dụng cho bất kỳ đối tượng nào. Nó thực thi một khối mã với đối tượng làm ngữ cảnh của nó và trả về kết quả của biểu thức cuối cùng trong khối. 'let' rất hữu ích để thực hiện các thao tác trên một đối tượng có thể vô hiệu hóa và chuyển đổi giá trị của nó.
Ví dụ:
val name: String? = "John Doe"
val length = name?.let {
println("Name is $it")
it.length
} ?: 0
println("Name length: $length")
chạy
Hàm 'run' tương tự như 'let', nhưng nó được gọi trên chính đối tượng đó, chứ không phải là một hàm mở rộng. Nó thực thi một khối mã với đối tượng làm ngữ cảnh của nó và trả về kết quả của biểu thức cuối cùng trong khối.
Ví dụ:
val numbers = mutableListOf(1, 2, 3, 4, 5)
val sum = numbers.run {
add(6)
add(7)
sum()
}
println("Sum: $sum")
với
'with' tương tự như 'run', nhưng nó không phải là chức năng mở rộng. Thay vào đó, nó lấy một đối tượng làm đối số đầu tiên và một khối mã làm đối số thứ hai. Nó thực thi khối mã với đối tượng làm ngữ cảnh của nó và trả về kết quả của biểu thức cuối cùng trong khối.
Ví dụ:
val person = Person("John Doe", 30)
val info = with(person) {
println("Name: $name, Age: $age")
"Name: $name, Age: $age"
}
println("Person Info: $info")
áp dụng
'áp dụng' là một chức năng mở rộng có thể được áp dụng cho bất kỳ đối tượng nào. Nó thực thi một khối mã với đối tượng làm ngữ cảnh của nó và trả về chính đối tượng đó. 'áp dụng' rất hữu ích để định cấu hình các thuộc tính của đối tượng và kết nối nhiều cuộc gọi lại với nhau.
Ví dụ:
val person = Person("John Doe", 30).apply {
age = 31
name = "Jane Doe"
}
println("Updated person: Name - ${person.name}, Age - ${person.age}")
Mà còn
'cũng' tương tự như 'áp dụng', nhưng nó trả về kết quả của khối thay vì chính đối tượng. Đó là một chức năng mở rộng có thể được áp dụng cho bất kỳ đối tượng nào và rất hữu ích để thực hiện các tác dụng phụ hoặc hành động bổ sung trên một đối tượng.
Ví dụ:
val updatedName = "Jane Doe".also {
println("Updating name to $it")
}
val person = Person("John Doe", 30).apply {
age = 31
name = updatedName
}
println("Updated person: Name - ${person.name}, Age - ${person.age}")
Phần kết luận
Các hàm phạm vi của Kotlin, cụ thể là let, run, with, apply, và cũng có thể giúp bạn viết mã sạch hơn và dễ đọc hơn. Hiểu được sự khác biệt và trường hợp sử dụng của chúng sẽ cho phép bạn khai thác hết tiềm năng của chúng và làm cho mã Kotlin của bạn hiệu quả hơn. Các ví dụ trong bài đăng trên blog này sẽ giúp bạn bắt đầu sử dụng các chức năng mạnh mẽ này trong các dự án Kotlin của mình.
- Tài liệu Kotlin về Scope Functions
