国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Groovy閉包委托

2019-11-08 19:29:53
字體:
供稿:網(wǎng)友

Groovy閉包委托

1、閉包的三個屬性this、owner和delegate,用來確定那個對象處理該閉包的方法調(diào)用。在內(nèi)部的閉包中,owner和delegate的值被修改了。
def parameterClosure(closure) {	closure()}parameterClosure() {	PRintln "In Outer Closure"	println "this is " + this	println "owner is " + owner	println "delegate is " + delegate		parameterClosure() {		println "In Inner Closure"		println "this is " + this		println "owner is " + owner		println "delegate is " + delegate	}}返回In Outer Closurethis is ConsoleScript37@1372443owner is ConsoleScript37@1372443delegate is ConsoleScript37@1372443In Inner Closurethis is ConsoleScript37@1372443owner is ConsoleScript37$_run_closure1@3acd6fbedelegate is ConsoleScript37$_run_closure1@3acd6fbe2、類中調(diào)用閉包時,this、owner和delegate三個屬性的值都是上下文。
class ParameterClosure {	def handleClosure(closure) {		closure()	}}new ParameterClosure().handleClosure () {	println "this is " + this	println "owner is " + owner	println "delegate is " + delegate}返回this is ConsoleScript43@1d476b4bowner is ConsoleScript43@1d476b4bdelegate is ConsoleScript43@1d476b4b3、方法的執(zhí)行順序,首先是this,其次是owner,最后是delegate。可以設置delegate來修改路由。
class Handler {	def f1() {		println "f1 in Handler"	}	def f2() {		println "f2 in Handler"	}}class ParameterClosure {	def handleClosure(closure) {		closure.delegate = new Handler()		closure()	}}def f1() {	println "f1 in script"}new ParameterClosure().handleClosure () {	f1()	f2()}返回f1 in scriptf2 in Handler
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武定县| 绿春县| 隆德县| 安岳县| 阿克苏市| 龙胜| 奉贤区| 淮安市| 铅山县| 秭归县| 庆云县| 休宁县| 扎兰屯市| 安康市| 乳山市| 临颍县| 兰溪市| 盐津县| 象山县| 赤城县| 开封县| 博罗县| 融水| 麻阳| 灵台县| 阜城县| 铜鼓县| 新昌县| 房产| 格尔木市| 高青县| 定兴县| 武鸣县| 乳山市| 临洮县| 利辛县| 鄂托克前旗| 南通市| 遵化市| 汾西县| 镇原县|