def PRintWithOneParameter(block) { block("Michael")}printWithOneParameter { println it }printWithOneParameter { name -> println name }返回MichaelMichael2、多個參數時,需要逐一指定。def printWithTwoParameter(block) { block "Michael", "Jordan"}printWithTwoParameter {firstName, secondName -> println "$secondName, $firstName $secondName"}返回Jordan, Michael Jordan3、可以預先綁定相應的參數。def printWithTwoParameter(block) { newBlock = block.curry("Michael") newBlock "Jordan" newBlock "Jackson"}printWithTwoParameter {firstName, secondName -> println "$secondName, $firstName $secondName"}返回Jordan, Michael JordanJackson, Michael Jackson4、類似的方法還有rcurry和ncurry。def printWithTwoParameter(block) { newBlock = block.rcurry("Michael") newBlock "Jordan" newBlock "Jackson"}printWithTwoParameter {firstName, secondName -> println "$secondName, $firstName $secondName"}返回Michael, Jordan MichaelMichael, Jackson Michael5、ncurry調用格式是ncurry(index, block)6、maximumNumberOfParameters屬性,閉包參數的數量。def printWithTwoParameter(block) { println block.maximumNumberOfParameters}printWithTwoParameter {firstName, secondName -> println "$secondName, $firstName $secondName"}返回2
新聞熱點
疑難解答