Tham số function trong Kotlin
Trong bài viết này chúng ta sẽ tìm hiểu tham số mặc định và cách đặt tên cho tham số trong Kotlin. Đối với tham số mặc định thì ngôn ngữ nào cũng có, nhưng tham số được đặt tên thì không tồn tại ở một số ngôn ngữ hiện nay như C, C++ hay PHP.
1. Tham số mặc định là gì?
Như chúng ta đã biết, một hàm có thể có các tham số và chúng ta có thể truyền giá trị của các tham số đó trong khi gọi hàm. Nhưng cũng có trường hợp ta muốn nếu không truyền giá trị cho tham số đó thì nó sẽ lấy một giá trị mặc định nào đó. Trường hợp này ta gọi là tạo giá trị mặc định cho một tham số.
Ví dụ đối số mặc định
Không truyền bất kỳ giá trị nào trong khi gọi hàm
fun main(args: Array<String>) { demo() } fun demo(number:Int= 100, ch: Char ='A'){ print("Number is: $number and Character is: $ch") }
OUTPUT:
Bài viết này được đăng tại [free tuts .net]
Number is: 100 and Character is: A
Trong ví dụ trên, chúng ta không truyền bất kỳ giá trị nào trong khi gọi hàm demo()
. Bây giờ chúng ta sẽ thử truyền cho các giá trị cho hàm trong khi hàm đã có các tham số chứa giá trị mặc định.
Truyền giá trị của tham số trong khi gọi hàm
fun main(args: Array<String>) { demo(99) } fun demo(number:Int= 100, ch: Char ='A'){ print("Number is: $number and Character is: $ch") }
OUTPUT:
Như bạn có thể thấy trong kết quả OUTPUT, khi chúng ta truyền các giá trị trong khi gọi hàm thì nó sẽ ghi đè các giá trị mặc định. Trong ví dụ trên ta đã truyền một giá trị duy nhất trong khi gọi hàm. Đó là lý do tại sao nó chỉ ghi đè giá trị mặc định đầu tiên, tuy nhiên chúng ta cũng có thể truyền giá trị cho tất cả các tham số và điều này sẽ ghi đè tất cả các giá trị mặc định.
Truyền giá trị của tất cả các tham số.
fun main(args: Array<String>) { demo(99, 'Z') } fun demo(number:Int= 100, ch: Char ='A'){ print("Number is: $number and Character is: $ch") }
OUTPUT:
Number is: 99 and Character is: Z
2. Tham số được đặt tên
Trong các ví dụ trên chúng ta đã học được cách đặt giá trị mặc định cho các tham số. Trong ví dụ thứ hai, chúng ta đã học được rằng chúng ta có thể gọi hàm và truyền giá trị cho các tham số đó. Chúng ta đã thực hiện lệnh gọi như thế này trong ví dụ thứ hai demo(99)
, nó ghi đè giá trị mặc định đầu tiên.
Tuy nhiên, nếu chúng ta chỉ muốn ghi đè giá trị mặc định cho tham số thứ hai thì chúng ta có thể thực hiện việc này bằng cách đặt tên cho các tham số đó.
fun main(args: Array<String>) { demo(ch='Z') } fun demo(number:Int= 100, ch: Char ='A'){ print("Number is: $number and Character is: $ch") }
OUTPUT:
Như bạn có thể thấy, chúng ta đã ghi đè giá trị mặc định của tham số thứ hai bằng cách sử dụng tên tham số trong khi gọi hàm demo(ch = 'Z')
. Nếu chúng ta đã thực hiện điều này mà không có tham số được đặt tên như demo('Z')
thì nó sẽ hiểu là ta đang truyền theo thứ tự các tham số, trong khi tham số đầu tiên là kiểu int mà ta lại truyền kiểu chuỗi nên sẽ báo lỗi.