Thắc mắc cú pháp trong kotlin

Chào mọi người, mình đang tìm hiểu về kotlin, mình tình cờ xem 1 ví dụ trên mạng trong đó có 1 phần code mà mình không hiểu cú pháp của dòng code đó mang ý nghĩa gì. Mình cũng đã thử tra google nhưng có lẽ keywork mình tra chưa đúng nên ko có kết quả nào. Mong mọi người giải thích cho mình cú pháp này.

Trong code có phần khai báo hàm như sau

fun Context.startActivity(createIntent: Intent.() -> Unit): Unit =
    Intent().apply(createIntent).run(this::startActivity)

Ở đoạn createIntent: Intent.() -> Unit theo mình tìm hiểu thì thông thường bên trái dấu -> sẽ là tham số, bên phải -> sẽ là kiểu trả về. Mọi người cho mình hỏi đoạn Intent.() có nghĩa là gì nhỉ, vì nó không giống 1 tham số. Mình xin cám ơn mọi người, mọi người có thể xem full đoạn code ở đây https://pastebin.com/ZmHyCgrk

2 Likes

Thật ra cái này được nói rất kĩ trong tài liệu về kotlin trên trang chủ của họ. Có lẽ bạn chưa đọc qua 1 tài liệu có bài bản nên thấy lạ. Từ khóa cho bạn là “kotlin extension method”.
Chi tiết thì mình không nhắc lại vội để dành cho bạn tự nghiên cứu trước. Nếu vẫn bí hoặc đã học được gì đó mới thì quay lại đây thảo luận thêm

4 Likes

cám ơn bạn nhiều, mình sẽ tìm hiểu về keywork này

Đúng cái mình đang cần huhu

1 Like

Nó là Function literals with receiver đó bạn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?