#!/usr/bin/ruby
func hi (i) {
func user (user) {
return ("Username is '%s'".sprintf(user)); # child function return
"Child function error! in #{__FILE__} at line #{__LINE__}\n" -> die;
}
user('sidef');
if (i == 3) {
if (i == 1+2) {
return "IF(3) RETURN";
}
"Error! (1)".die;
}
elsif (i == 3) {
"ERROR: re-true elsif!".die;
}
elsif (i == 1) {
return "ELSIF(1) RETURN";
"Error! (2)".die;
}
i == 3 && (
return "&& RETURN";
"Error! (3)".die;
);
if (i == 2) {
return "IF(2) RETURN";
"Error! (4)".die;
}
return "FUNC RETURN";
"ERROR RETURN";
}
hi(1) == "ELSIF(1) RETURN" || "Error hi(1)!".die;
hi(2) == "IF(2) RETURN" || "Error hi(2)!".die;
hi(3) == "IF(3) RETURN" || "Error hi(3)!".die;
hi(4) == "FUNC RETURN" || "Error hi(4)!".die;
#
## Return from 'for' loop
#
func for_loop {
for (["a", "z", "f"]) { |c|
if (c == "z") {
return "LOOP RETURN";
}
if (c == "f") {
"LOOP ERROR!".die;
}
}
"Error hello(name)!".die;
}
for_loop() == "LOOP RETURN" || "Error hello(Sidef)!".die;
say "Test passed!";