簡體   English   中英

Groovy中關閉參數的默認值

[英]Default Value for Closure Parameters in Groovy

有什么方法可以在Groovy中使用默認參數值和閉包嗎?

這是我到目前為止嘗試過的:

class Persona {
    String name

    Persona( String name ) {
        this.name = name
    }

    String salute( String salute = "Hola" ) {
        salute + ' ' + this.name
    }

}

Persona.metaClass.salute2 = { 
    String salute = "Hola" ->
        salute + ' ' + name
}

p = new Persona( 'john' )

print p.salute()
print p.salute2()

這給了我以下結果:

Hola johnnull john

似乎對salute2()的調用忽略了敬禮的默認值"Hola"

您的代碼可以按預期的那樣與Groovy 1.6-RC2一起正常工作。

我不相信Groovy可以直接完成您所要求的事情。

模擬此方法的方法是將“ salute2”作為一個閉包,該閉包在其中定義另一個閉包(當前連接“ salute”和“ name”變量的閉包,其中“ salute”是閉包參數)),然后調用該關閉,發送值“ Hola”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM