Khoá học: Thiết lập dự án Wordpress

Nếu bạn đang tìm kiếm một cách nhanh chóng và hiệu quả để thiết lập một trang web cá nhân hoặc doanh nghiệp của mình, hãy bắt đầu với WordPress. Được coi là nền tảng quản lý nội dung (CMS) phổ biến nhất trên thế giới, WordPress cho phép bạn dễ dàng tạo ra một [...]

[Tự học Kotlin] Gọi hàm Infix trong Kotlin

Trong bài viết này, bạn sẽ học cách sử dụng ký hiệu infix để gọi một hàm trong Kotlin (với sự trợ giúp của các ví dụ).

Trước khi bạn tìm hiểu cách tạo một hàm có ký hiệu infix, hãy tìm hiểu về hai hàm infix thường được sử dụng.

Khi bạn sử dụng hai toán tử  ||và &&, trình biên dịch sẽ tìm hai hàm tương ứng là hàm or và hàm and, và gọi sau đó sẽ gọi hai hàm này một cách cơ bản.

Hai hàm này có hỗ trợ ký hiệu infix.

Ví dụ: Hàm or & and trong Kotlin


/*
Dạy Kèm IT.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: [email protected]
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

fun main(args: Array<String>) {
    val a = true
    val b = false
    var result: Boolean

    result = a or b // a.or(b)
    println("result = $result")

    result = a and b // a.and(b)
    println("result = $result")
}

Khi bạn chạy chương trình, kết quả sẽ là:

result = true
result = false

Trong chương trình trên, ta sử dụng a or b thay vì sử dụng a.or(b)và ta cũng đã dùng a and b thay vì dùng a.and(b). Có thể làm như vây bởi vì hai hàm này hỗ trợ ký hiệu infix.

Làm thế nào để tạo một hàm với ký hiệu infix?

Bạn có thể gọi một hàm có sử dụng kí hiệu infix trong Kotlin nếu hàm đó đạt các tiêu chí sau:

  • là một hàm thành viên (hoặc một hàm mở rộng ) .
  • chỉ có một tham số duy nhất.
  • được đánh dấu bằng từ khóa infix.

Ví dụ: Hàm do người dùng định nghĩa với ký hiệu Infix


/*
Dạy Kèm IT.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: [email protected]
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

class Structure() {

    infix fun createPyramid(rows: Int) {
        var k = 0
        for (i in 1..rows) {
            k = 0
            for (space in 1..rows-i) {
                print("  ")
            }
            while (k != 2*i-1) {
                print("* ")
                ++k
            }
            println()
        }
    }
}

fun main(args: Array<String>) {
    val p = Structure()
    p createPyramid 4       // p.createPyramid(4)
}

Khi bạn chạy chương trình, kết quả sẽ là:

      * 
    * * * 
  * * * * * 
* * * * * * * 

Ở đây, hàm createPyramid() là một hàm infix tạo ra một cấu trúc kim tự tháp. Đây là một hàm thành viên của class Structure, chỉ chấp nhận một tham số thuộc kiểu dữ liệu Int và hàm này bắt đầu bằng từ khóa infix.

Số lượng hàng của hình kim tự tháp phụ thuộc vào đối số được truyền cho hàm.


Đăng ký kênh youtube để ủng hộ Dạy Kèm IT nha các bạn, Thanks you!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *