欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin函數(shù)默認(rèn)值的完全講解

 更新時間:2019年04月04日 11:43:25   作者:程序園中猿  
這篇文章主要給大家介紹了關(guān)于Kotlin函數(shù)默認(rèn)值的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Kotlin具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

函數(shù)默認(rèn)值

周所周知,Java語言并不支持參數(shù)使用默認(rèn)值。有人說這是因為“默認(rèn)參數(shù)”和“方法重載”同時支持的話有二義性的問題,具體真正的原因我不得而知。但是對我個人來說,Java不支持這個特性的確挺讓我蛋疼的,雖然說使用方法重載也可以間接實(shí)現(xiàn)與默認(rèn)參數(shù)這個特性相同的功能,但這就意味著你得寫更多的代碼……

簡要介紹

Kotlin函數(shù)定義時,支持對參數(shù)指定默認(rèn)值,這樣就有效減少Java之前定義重載函數(shù)的數(shù)量.

簡要對比如下:

1、Java函數(shù)定義,如果sayHelloTo函數(shù)中的lastName可以使用默認(rèn)值,則需要定義如下兩個函數(shù).

public class Person {
 public void sayHelloTo(String firstName,String lastName){
  System.out.println("Hi,"+firstName+" "+lastName);
 }
 public void sayHelloTo(String firstName){
  sayHelloTo(firstName,"noLastName");
 }
}

2、Kotlin定義如下,只需要一個函數(shù)

class Person {
 fun sayHelloTo(firstName: String, lastName: String = "noLastName") {
  println("Hi,$firstName $lastName")
 }
}

Kotlin函數(shù)默認(rèn)值詳細(xì)規(guī)則

1、可以采用指定全部參數(shù)名和不指定參數(shù)名的調(diào)用方式,推薦采用指定參數(shù)名的調(diào)用方式(不能指定部分函數(shù)參數(shù)名,其他的不指定)

正確樣例:

sayHelloTo("Jerry","Aha")
sayHelloTo(firstName = "Jerry",lastName = "Aha")

錯誤樣例:

sayHelloTo(firstName = "Jerry","Aha")

2、在指定參數(shù)名時,所有無默認(rèn)值參數(shù)傳入值即可

樣例:

sayHelloTo(firstName = "Jerry",lastName = "Aha")

3、在不指定參數(shù)名時,則需要區(qū)分情況:

如果函數(shù)定義時,所有具有默認(rèn)值的參數(shù)都在最后,則可以只傳入無默認(rèn)值參數(shù)值.

樣例:

函數(shù)定義:

fun sayHelloTo(firstName: String, lastName: String = "Aha")

正確樣例:

sayHelloTo("Jerry")

如果函數(shù)定義時,具有默認(rèn)值的參數(shù)并不都是在最后面,則必須傳入所有參數(shù)值.

樣例:

函數(shù)定義:

fun sayHelloTo(firstName: String, middleName: String = "",lastName: String)

正確樣例:

sayHelloTo("Jerry","","Aha")

錯誤樣例:

sayHelloTo("Jerry","Aha")

Demo代碼

1、Person.kt

class Person(
 val firstName: String = "Jerry",
 val lastName: String = "Yin"
) {
 fun sayHello() {
  System.out.println("Hi,$firstName $lastName")
 }

 fun sayHelloTo(firstName: String = "Baby", lastName: String = "Aha") {
  System.out.println("Hi,$firstName $lastName")
 }
}

2、Person2.kt

class Person2(
 val firstName: String = "Jerry",
 val lastName: String
) {
 fun sayHello() {
  System.out.println("Hi,$firstName $lastName")
 }

 fun sayHelloTo(firstName: String = "Baby", lastName: String) {
  System.out.println("Hi,$firstName $lastName")
 }
}

3、調(diào)用代碼:

Person().sayHello()
Person("Jerry1").sayHello()
Person("Jerry2", "Yin2").sayHello()
Person(firstName = "Jerry3").sayHello()
Person(lastName = "Yin4").sayHello()

Person().sayHelloTo()
Person().sayHelloTo("Baby1")
Person().sayHelloTo("Baby2", "Aha2")
Person().sayHelloTo(firstName = "Baby3")
Person().sayHelloTo(lastName = "Aha4")

Person2(lastName = "Yin5").sayHello()
Person2("Jerry6", "Yin6").sayHello()
Person2("", "").sayHelloTo(lastName = "Yin8")
Person2("", "").sayHelloTo("Jerry9", "Yin9")

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論