void if_test() {
print('--- start if_test ---');
int i = 1;
if (i == 1) {
print(1);
} else if (i == 2) {
print(2);
} else {
print('else');
}
print('--- end if_test ---\n');
}
void switch_test() {
print('--- start switch_test ---');
int i = 1;
switch (i) {
case 1:
print(1);
break;
case 2:
print(2);
break;
default:
print('default');
break;
}
print('--- end switch_test ---\n');
}
void switch_expression_test() {
print('--- start switch_expression_test ---');
int i = 1;
String s = switch (i) {
1 => '1',
2 => '2',
3 => '3',
_ => '_',
};
print(s);
print('--- end switch_expression_test ---\n');
}
void switch_pattern_matching_test(dynamic any) {
print('--- start switch_pattern_matching_test ---');
switch (any) {
case 1:
print(1);
break;
case [1, 2]:
print('[1, 2]');
break;
case [_, _, _]:
print('[_, _, _]');
break;
case [int i, String s]:
print('[int i, String s]');
break;
case (int i, String s):
print('(int i, String s)');
break;
default:
print('default');
break;
}
print('--- end switch_pattern_matching_test ---\n');
}
void switch_exhaustiveness_checking_test() {
print('--- start switch_exhaustiveness_checking_test ---');
bool? b;
switch (b) {
case true:
print('true');
break;
case false:
print('false');
break;
case null:
print('null');
break;
}
print('--- end switch_exhaustiveness_checking_test ---\n');
}
void switch_guard_clause_test() {
print('--- start switch_guard_clause_test ---');
(int i, int j) value = (1, 2);
switch (value) {
case (_, _) when value.$1 == 1:
print(1);
break;
default:
print('default');
}
print('--- end switch_guard_clause_test ---\n');
}
void main() async {
if_test();
switch_test();
switch_expression_test();
switch_pattern_matching_test(1);
switch_pattern_matching_test([1, 2]);
switch_pattern_matching_test([1, 2, 3]);
switch_pattern_matching_test([1, 'a']);
switch_pattern_matching_test((1, 'a'));
switch_pattern_matching_test((1, 'a', 3));
switch_exhaustiveness_checking_test();
switch_guard_clause_test();
}