This page has been translated automatically.
Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Bounds-Related Classes
Containers
Controls-Related Classes
Core Library
Engine-Related Classes
GUI-Related Classes
Node-Related Classes
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes
Utility Classes
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Yield

The yield keyword is used to alter a starting point of a function for future calls. At the moment of execution, yield acts as return and can even return a value. The difference is that during the next call, the function will start its execution from the instruction right after the yield operator.

Syntax

Source code(UnigineScript)
// some_code_before; 
yield value; 
// some_code_after;

Parts

  • value is a value to yield. It is optional (0 by default).

Example

Source code(UnigineScript)
int foo() {
	begin:
		
		// execution starts here during the first call
		log.message("one, ");
		
		// execution ends here during the first call
		yield;
		
		// execution starts here during the second call
		log.message("two, ");
		
		// execution ends here during the second call
		yield;
		
		// execution starts here during the third call
		log.message("three, ");
		
		// execution starts here during the third call
		yield;
		
		// execution starts here during the fourth call
		goto begin;
}
forloop(int i = 0; 10) foo();

// the result is: one, two, three, one, two, …
Last update: 2017-07-03
Build: ()