mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	
		
			
	
	
		
			36 lines
		
	
	
	
		
			873 B
		
	
	
	
		
			GDScript3
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
	
		
			873 B
		
	
	
	
		
			GDScript3
		
	
	
	
	
	
|   | # https://github.com/godotengine/godot/issues/56702 | ||
|  | 
 | ||
|  | func test(): | ||
|  | 	const_default() | ||
|  | 	func_result_default() | ||
|  | 	# calling again will run the initializer again, | ||
|  | 	# as the default is not evaluated at time of defining the function (as in python) | ||
|  | 	# but every time the function is called (as in C++) | ||
|  | 	func_result_default() | ||
|  | 	lots_of_defaults("non-optional") | ||
|  | 	# somewhat obscure feature: referencing earlier parameters | ||
|  | 	ref_default("non-optional", 42) | ||
|  | 
 | ||
|  | 
 | ||
|  | func const_default(param=42): | ||
|  | 	print(param) | ||
|  | 
 | ||
|  | 
 | ||
|  | var default_val := 0 | ||
|  | 
 | ||
|  | func get_default(): | ||
|  | 	default_val += 1 | ||
|  | 	return default_val | ||
|  | 
 | ||
|  | 
 | ||
|  | func func_result_default(param=get_default()): | ||
|  | 	print(param) | ||
|  | 
 | ||
|  | 
 | ||
|  | func lots_of_defaults(nondefault, one=1, two=2, three=get_default()): | ||
|  | 	prints(nondefault, one, two, three) | ||
|  | 
 | ||
|  | 
 | ||
|  | func ref_default(nondefault1, nondefault2, defa=nondefault1, defb=nondefault2 - 1): | ||
|  | 	prints(nondefault1, nondefault2, defa, defb) |