Đối số được đặt tên và mặc định của Kotlin (Có ví dụ)

Trong bài viết này, bạn sẽ tìm hiểu về các đối số mặc định và được đặt tên với sự trợ giúp của các ví dụ.

Đối số mặc định của Kotlin

Trong Kotlin, bạn có thể cung cấp giá trị mặc định cho các tham số trong định nghĩa hàm.

Nếu hàm được gọi với các đối số được truyền vào, các đối số đó được sử dụng làm tham số. Tuy nhiên, nếu hàm được gọi mà không truyền (các) đối số, thì đối số mặc định sẽ được sử dụng.

Các đối số mặc định hoạt động như thế nào?

Trường hợp I: Tất cả các đối số được thông qua

Hàm foo()nhận hai đối số. Các đối số được cung cấp với các giá trị mặc định. Tuy nhiên, foo()được gọi bằng cách truyền cả hai đối số trong chương trình trên. Do đó, các đối số mặc định không được sử dụng.

Giá trị của chữ cái và số sẽ là 'x'và 2 tương ứng bên trong foo()hàm.

Trường hợp II: Tất cả các đối số không được thông qua

Ở đây, chỉ một đối số (đầu tiên) được truyền cho foo()hàm. Do đó, đối số đầu tiên sử dụng giá trị được truyền cho hàm. Tuy nhiên, số đối số thứ hai sẽ nhận giá trị mặc định vì đối số thứ hai không được truyền trong khi gọi hàm.

Giá trị của chữ cái và số sẽ là 'y'và 15 tương ứng bên trong foo()hàm.

Trường hợp III: Không có đối số nào được thông qua

Ở đây, foo()hàm được gọi mà không cần truyền bất kỳ đối số nào. Do đó, cả hai đối số đều sử dụng các giá trị mặc định của nó.

Giá trị của chữ cái và số sẽ là 'a'và 15 tương ứng bên trong foo()hàm.

Ví dụ: Đối số mặc định của Kotlin

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( println("Output when no argument is passed:") displayBorder() println("'*' is used as a first argument.") println("Output when first argument is passed:") displayBorder('*') println("'*' is used as a first argument.") println("5 is used as a second argument.") println("Output when both arguments are passed:") displayBorder('*', 5) )

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

Đầu ra khi không có đối số nào được truyền: =============== '*' được sử dụng làm đối số đầu tiên. Đầu ra khi đối số đầu tiên được truyền: *************** '*' được sử dụng làm đối số đầu tiên. 5 được sử dụng như một đối số thứ hai. Đầu ra khi cả hai đối số được truyền: *****

Đối số có tên Kotlin

Trước khi nói về đối số được đặt tên, chúng ta hãy xem xét một chút sửa đổi của đoạn mã trên:

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )

Ở đây, chúng tôi đang cố gắng truyền đối số thứ hai cho displayBorder()hàm và sử dụng đối số mặc định cho đối số đầu tiên. Tuy nhiên, mã này sẽ gây ra lỗi khi sử dụng. Đó là bởi vì trình biên dịch nghĩ rằng chúng tôi đang cố gắng cung cấp 5 ( Intgiá trị) cho ký tự ( Charkiểu).

Để giải quyết tình huống này, các đối số được đặt tên có thể được sử dụng. Đây 'cách làm:

Ví dụ: Đối số có tên Kotlin

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) ) 

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

 =====

Trong chương trình trên, chúng ta đang sử dụng đối số có tên ( length = 5) chỉ định rằng tham số độ dài trong định nghĩa hàm sẽ nhận giá trị này (không quan trọng vị trí của đối số).

Ký tự đối số đầu tiên sử dụng giá trị mặc định '='trong chương trình.

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