File: parameter-ref-delegate.vala

package info (click to toggle)
vala 0.56.18-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 57,528 kB
  • sloc: ansic: 581,293; sh: 5,357; makefile: 3,980; xml: 3,161; yacc: 1,219; lex: 374; javascript: 23
file content (26 lines) | stat: -rw-r--r-- 381 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
delegate int FooFunc ();

void foo (int i, ref FooFunc func) {
	assert (func () == i);
	func = () => 4711;
}

int bar () {
	return 23;
}

void main () {
	{
		FooFunc func = bar;
		assert (func () == 23);
		foo (23, ref func);
		assert (func () == 4711);
	}
	{
		int i = 42;
		FooFunc func = () => i;
		assert (func () == 42);
		foo (42, ref func);
		assert (func () == 4711);
	}
}