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

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

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

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

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

簡(jiǎn)要介紹

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

簡(jiǎn)要對(duì)比如下:

1、Java函數(shù)定義,如果sayHelloTo函數(shù)中的lastName可以使用默認(rèn)值,則需要定義如下兩個(gè)函數(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定義如下,只需要一個(gè)函數(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")

錯(cuò)誤樣例:

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

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

樣例:

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

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

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

樣例:

函數(shù)定義:

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

正確樣例:

sayHelloTo("Jerry")

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

樣例:

函數(shù)定義:

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

正確樣例:

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

錯(cuò)誤樣例:

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é)

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

相關(guān)文章

最新評(píng)論