Core Function Goto Label

From Sputnik Wiki
Jump to: navigation, search
Goto Label; & Label:

Description

Jump to another section of the script

Remarks

This is a universal *jump to anything you can see* it can jump through pretty much every scope it can find and what not.

That doesn't mean it's perfect far from it it may never find the label or it might find it right away or it might take a second to find it... Who knows?

Think of it as a kind of multilayer break statement.

People often avoid using "goto" statements in languages because they tend to be slow and a very poor way of solving a problem yet its here if you want it.

It is worth noting that Goto is a pretty slow thing to use.

If a label cannot be found an exception will occur.

Example

goto Begin;
 
Above:
println(  "Hello Above"  );
goto Below;
 
Begin:
println(  "Hello"  );
goto Above;
 
Below:
println(  "Hello Below"  );

Goto can be pretty crazy in where it can jump you to for example:

{
	if( "Cat" == "Dog")
	{
		if( "Cat" == "Dog")
		{
		}
		else
		{
			while(false)
			{
				switch(100)
				{
					case 1:
					{
					}
					break;
					case 2:
					{
						fox:
						say "FOX!!!!!!!!!!!!!!!!!";
						goto finish;
					}
					break;
					case 3:
					{
						while(false)
						{
							foreach("lol" as $c)
							{
								for($i = 0; $i < 10; $i++)
								{
									for( 0 .. 30 as $k )
									{
										cat:
										say "CAT!!!!";
										goto fox;
									}
								}
							}
						}
					}
					break;
					case 4:
					{
					}
					break;
				}
			}
		}
 
	}
}
 
say "Begin";
goto test;
 
if(1==2)
{
	say "Test";
	test:
	say "Hello";
}
 
say "End";
goto cat;
finish:
say "OK I'm done";
// Prints:
// Begin
// Hello
// End
// CAT!!!!
// FOX!!!!!!!!!!!!!!!!!
// OK I'm done
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox