📝 improve maintainability

This commit is contained in:
ValKmjolnir
2024-05-13 00:06:37 +08:00
parent a11e0726bb
commit 230848a6e1
4 changed files with 96 additions and 59 deletions

View File

@@ -1,12 +1,13 @@
var student = func(n,a) {
var student = func(n, a) {
return {
print_info:func println(n,' ',a),
set_age: func(age) a=age,
get_age: func return a,
set_name: func(name) n=name,
get_name: func return n
print_info: func println(n,' ',a),
set_age: func(age) a=age,
get_age: func return a,
set_name: func(name) n=name,
get_name: func return n
};
}
var s=student('valk',24);
s.print_info();
println(s.get_age(),' ',s.get_name());
@@ -18,6 +19,7 @@ s.set_age(20);
s.set_name('Sidi Liang');
s.print_info();
println(s.get_age(),' ',s.get_name());
# flightgear nasal-console cannot use this kind of object initializing
var m = func() {
var (_1,_2)=(0,1);

View File

@@ -250,4 +250,20 @@ var test_single_id_iterator = 0;
foreach(test_single_id_iterator; [0, 1, 2, 3]) {
println(test_single_id_iterator);
}
}
# simple closure test, make sure two functions share the same closure
var closure_tester = func() {
var b = 0;
return [
func { b += 1; },
func { return b; }
];
}();
for(var i = 1; i<=10; i += 1) {
closure_tester[0]();
if (closure_tester[1]()!=i) {
die("test failed: expect " ~ i ~ ", but get " ~ closure_tester[1]());
}
}