Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业务

源代码在线查看: nestedclosure2bug.groovy

软件大小: 1644 K
上传用户: maple_78
关键词: Groovy JVM 动态语言 运行
下载地址: 免注册下载 普通下载 VIP

相关代码

				import org.codehaus.groovy.classgen.TestSupport
				
				/**
				 * @version $Revision: 2285 $
				 */
				class NestedClosure2Bug extends TestSupport {
				     
				    Object f
				     
				    void testFieldBug() {
				    	def closure = {
				    		return {
					    		f = 123
					    		return null
					        }
					    }
				        def value = closure()
				        value = value()
				        assert f == 123
				    }
				     
				    void testBugOutsideOfScript() {
				    	def a = 123
				    	def b = 456
				    	def closure = {
				    		println b
				    		def c = 999
				    		return {
				    			f = 2222111
				    			
				    			println f
				    			
				    			println c
				    			def d = 678
				    			return { 
				    				println f
				    				assert f == 2222111
				    				println d
				    				return a
				    			}
				    		}
				    	}
				    	def c2 = closure()
				    	def c3 = c2()
				    	def value = c3()
				
						assert f == 2222111    	
				    	assert value == 123
				    }
				    
				    void testBug() {
				    	assertScript """
					    	def a = 123
					    	def closure = {
					    		return {
					    			return { 
					    				return a
					    			}
					    		}
					    	}
					    	def c2 = closure()
					    	def c3 = c2()
					    	value = c3()
					    	
					    	assert value == 123
				"""
					}
				}			

相关资源