Hàm Kotlin (Có ví dụ)

Trong bài viết này, bạn sẽ tìm hiểu về các hàm; các hàm là gì, cú pháp của nó và cách tạo một hàm người dùng trong Kotlin.

Trong lập trình, hàm là một nhóm các câu lệnh có liên quan với nhau để thực hiện một nhiệm vụ cụ thể.

Các hàm được sử dụng để chia một chương trình lớn thành các phần nhỏ hơn và theo mô-đun. Ví dụ: bạn cần tạo và tô màu một vòng tròn dựa trên đầu vào từ người dùng. Bạn có thể tạo hai hàm để giải quyết vấn đề này:

  • createCircle() Chức năng
  • colorCircle() Chức năng

Việc chia một chương trình phức tạp thành các thành phần nhỏ hơn giúp chương trình của chúng ta có tổ chức và dễ quản lý hơn.

Hơn nữa, nó tránh lặp lại và làm cho mã có thể sử dụng lại.

Các loại chức năng

Tùy thuộc vào việc một hàm được xác định bởi người dùng hay có sẵn trong thư viện chuẩn, có hai loại hàm:

  • Chức năng Thư viện Chuẩn Kotlin
  • Các chức năng do người dùng xác định

Chức năng Thư viện Chuẩn Kotlin

Các hàm thư viện tiêu chuẩn là các hàm tích hợp sẵn trong Kotlin luôn sẵn sàng để sử dụng. Ví dụ,

  • print() là một chức năng thư viện in thông báo ra luồng đầu ra tiêu chuẩn (màn hình).
  • sqrt()trả về căn bậc hai của một số ( Doublegiá trị)
 fun main(args: Array) ( var number = 5.5 print("Result = $(Math.sqrt(number))") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Kết quả = 2.345207879911715

Đây là liên kết đến Thư viện tiêu chuẩn Kotlin để bạn khám phá.

Chức năng do người dùng xác định

Như đã nói, bạn có thể tự tạo các hàm. Các chức năng như vậy được gọi là các chức năng do người dùng định nghĩa.

Làm thế nào để tạo một hàm do người dùng xác định trong Kotlin?

Trước khi có thể sử dụng (gọi) một hàm, bạn cần phải định nghĩa nó.

Đây là cách bạn có thể xác định một hàm trong Kotlin:

 fun callMe () (// nội dung hàm) 

Để xác định một hàm trong Kotlin, funtừ khóa được sử dụng. Sau đó đến tên của hàm (định danh). Ở đây, tên của hàm là callMe.

Trong chương trình trên, dấu ngoặc ( )trống. Nó có nghĩa là, hàm này không chấp nhận bất kỳ đối số nào. Bạn sẽ tìm hiểu về các lập luận ở phần sau của bài viết này.

Các mã bên trong dấu ngoặc nhọn ( )là phần thân của hàm.

Làm thế nào để gọi một hàm?

Bạn phải gọi hàm để chạy mã bên trong nội dung của hàm. Đây là cách thực hiện:

 gọi cho tôi()

Câu lệnh này gọi callMe()hàm đã khai báo trước đó.

Ví dụ: Chương trình hàm đơn giản

 fun callMe() ( println("Printing from callMe() function.") println("This is cool (still printing from inside).") ) fun main(args: Array) ( callMe() println("Printing outside from callMe() function.") )

Khi bạn chạy chương trình, đầu ra sẽ là:

In từ hàm callMe (). Điều này thật tuyệt (vẫn in từ bên trong). In bên ngoài từ hàm callMe ().

Các callMe()chức năng trong đoạn code trên không chấp nhận bất kỳ cuộc tranh cãi.

Ngoài ra, hàm không trả về bất kỳ giá trị nào (kiểu trả về là Unit).

Hãy lấy một ví dụ chức năng khác. Hàm này sẽ chấp nhận các đối số và cũng trả về một giá trị.

Ví dụ: Thêm hai số bằng hàm

 fun addNumbers(n1: Double, n2: Double): Int ( val sum = n1 + n2 val sumInteger = sum.toInt() return sumInteger ) fun main(args: Array) ( val number1 = 12.2 val number2 = 3.4 val result: Int result = addNumbers(number1, number2) println("result = $result") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 kết quả = 15

Các hàm với đối số và giá trị trả về hoạt động như thế nào?

Ở đây, hai đối số number1 và number2 kiểu Doubleđược truyền cho addNumbers()hàm trong khi gọi hàm. Các đối số này được gọi là đối số thực tế.

 kết quả = addNumbers (number1, number2)

Các tham số n1 và n2 chấp nhận các đối số được truyền vào (trong định nghĩa hàm). Các đối số này được gọi là đối số chính thức (hoặc tham số).

Trong Kotlin, các đối số được phân tách bằng dấu phẩy. Ngoài ra, kiểu của đối số chính thức phải được nhập rõ ràng.

Lưu ý rằng, kiểu dữ liệu của đối số chính thức và thực tế phải khớp với nhau, tức là kiểu dữ liệu của đối số thực đầu tiên phải khớp với loại đối số chính thức đầu tiên. Tương tự, loại đối số thực tế thứ hai phải khớp với loại đối số chính thức thứ hai, v.v.

Đây,

 trả về sumInteger

là câu lệnh trả về. Đoạn mã này kết thúc addNumbers()hàm và điều khiển chương trình sẽ chuyển đến main()hàm.

Trong chương trình, sumInteger được trả về từ addNumbers()hàm. Giá trị này được gán cho kết quả biến.

Để ý,

  • cả sumInteger và result đều thuộc loại Int.
  • kiểu trả về của hàm được chỉ định trong định nghĩa hàm.
     // return type is Int fun addNumbers(n1: Double, n2: Double): Int (… )

If the function doesn't return any value, its return type is Unit. It is optional to specify the return type in the function definition if the return type is Unit.

Example: Display Name by Using Function

 fun main(args: Array) ( println(getName("John", "Doe")) ) fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

When you run the program, the output will be:

 John Doe

Here, the getName() function takes two String arguments, and returns a String.

You can omit the curly braces ( ) of the function body and specify the body after = symbol if the function returns a single expression (like above example).

It is optional to explicitly declare the return type in such case because the return type can be inferred by the compiler. In the above example, you can replace

 fun getName (firstName: String, lastName: String): String = "$ firstName $ lastName"

với

 fun getName (firstName: String, lastName: String) = "$ firstName $ lastName" 

Đây chỉ là phần giới thiệu ngắn gọn về các chức năng trong Kotlin. Đề xuất bài viết liên quan đến chức năng:

  • Hàm nội tuyến Kotlin
  • Các hàm infix Kotlin
  • Phạm vi chức năng Kotlin
  • Các đối số được đặt tên và mặc định của Kotlin
  • Đệ quy Kotlin
  • Hàm đệ quy đuôi Kotlin
  • Chức năng mở rộng Kotlin
  • Chức năng bậc cao Kotlin & Lambdas

thú vị bài viết...