0
A
回答
2
代表設置是否能夠存活?
如果通過「生存」,您的意思是克隆將具有相同的代表,那麼答案是「是」。
groovy:000> c = {
groovy:001> append 'Hello'
groovy:002> }
===> [email protected]
groovy:000>
groovy:000> c.delegate = new StringBuffer()
===>
groovy:000> d = c.clone()
===> [email protected]
groovy:000>
groovy:000> c.delegate
===>
groovy:000> d.delegate
===>
groovy:000> c()
===> Hello
groovy:000> c.delegate
===> Hello
groovy:000> d.delegate
===> Hello
groovy:000> d.delegate.append 'Goodbye'
===> HelloGoodbye
groovy:000> c.delegate
===> HelloGoodbye
groovy:000> d.delegate
===> HelloGoodbye
groovy:000>
根據具體情況,如果你寫它接受一個封閉的方法和你的方法是要改變封閉的狀態(如修改委託或resolveStrategy)正常的事情,那麼正確的事要做的通常是克隆閉包,然後只改變克隆中的那些屬性,使原始的一個與通過時一樣完整。
相關問題
- 1. 當executorservice關閉時,運行/阻塞的runnables會發生什麼()
- 2. 當我修改克隆的obj(使用{...})時,爲什麼obj會發生變異?
- 3. 當主窗口關閉時,SynchronizationContext會發生什麼?
- 4. 當MySQL連接未關閉時會發生什麼?
- 5. 當公開測試再次關閉時會發生什麼
- 6. 當Android應用程序強行關閉時會發生什麼
- 7. 當瀏覽器關閉時,applet會發生什麼?
- 8. 什麼是H.450.2?當它不存在時會發生什麼?
- 9. ASP.Net的自動回發。當它太慢時會發生什麼?
- 10. 當線程在設置鎖定時關閉時會發生什麼情況
- 11. 在WPF/Prism中,當DelegateCommand.RaiseCanExecuteChanged被觸發時,CompositeCommand會發生什麼?
- 12. 與MongoDB的連接沒有關閉時會發生什麼?
- 13. 當tomcat關閉時,ExecutorService管理的線程會發生什麼情況?
- 14. 當包含lambda的類型被分配時會發生什麼?
- 15. 當獲取它的線程退出時,Mutex會發生什麼?
- 16. 窗戶關閉時運行任務會發生什麼?
- 17. 關閉實體框架連接時會發生什麼
- 18. 當計算機意外關閉時,mysql數據會發生什麼情況?
- 19. 當我關閉/中止WCF頻道/代理時會發生什麼?
- 20. 當您在關閉body標籤後放置javascript時會發生什麼?
- 21. 爲什麼當我嘗試改變它時,我的馬里奧克隆遊戲精靈會被切斷?
- 22. 當我ping 127.0.0.1時會發生什麼
- 23. 當redis重載時會發生什麼?
- 24. 當crontabs重疊時會發生什麼?
- 25. 當AsyncTasks已滿時會發生什麼?
- 26. 當我編譯時會發生什麼?
- 27. 當Scala「Future」被垃圾收集時會發生什麼?
- 28. 當condition_variable :: wait()被調用時,解鎖unique_lock會發生什麼?
- 29. 當sqlite3 db寫入被中斷時會發生什麼?
- 30. 當其shared_ptr被銷燬時,weak_ptr會發生什麼?