Оголошення функцій
Функції в Mash Script оголошуються за допомогою типу даних, що повертається, за яким слідує ім'я функції та список параметрів у круглих дужках. Далі слідує блок коду функції у фігурних дужках.
void mul(a: int, b: int) {
Out.println(a * b);
}
У цьому прикладі ми оголосили функцію mul
, яка приймає два числа a
та b
. Функція виводить добуток цих чисел на консоль за допомогою Out.println
.
Опціональні параметри та функції без параметрів
Функція може не мати параметрів, або мати опціональні, “keyword“.
void mul(a: int, b: int = 2) {
Out.println(a * b);
}
mul(6) // 12
mul(6, 3) // 18
mul(3, b=2) // 6
mul(b=12, a=2) // 24
void print_hello() {
Out.println("Hello!");
}
print_hello() // "Hello!"
Ключове слово ret
Функція може повертати певне значення, тип якого відповідає визначеному під час оголошення функції.
int plus(a: int, b: int) {
ret a + b;
}
Out.println(plus(6, 3)); // 9
Out.println(plus(plus(6, 4), 8)); // 18
Зверніть увагу: під час оголошення функції використано тип int
. Об’єкт саме цього типу повинна повертати функція.
Продвинута типізація
Ви можете використовувати будь-який вираз як тип повернення під час оголошення функції.
import { * } from typing;
Union(TypedPtr, pointer) get_counter(startswith: T, T: type=null) {
if (T == null) {
ret TypedPtr(T, &startswith);
}
else {
ret &startswith;
}
}
import stdl;
stdl-> void main() {
Out.println("Hello!");
}
use Random;
dyn get_sth() { // Повертає будь-яке значення
ret Random.pick([1, "1", [1], 1.2, &null]);
}
array[string] get_names() {
ret "Roman", "Johan", "Rob";
}
string name = "John";
name.__type__ get_name() {
ret name;
}
Анонімні функції
Це функції, що не мають ім’я та визначеного типу повернення (dyn
)
(/* params */) {
// body...
}
func[int] to_integer = (f: float) {
ret int(f);
}
(
(message: string) {
Out.println(message);
}
)("Hello, World!");
Виклик функцій
Після оголошення функції ми можемо її викликати з будь-якого місця програми. Як ми робили це раніше. Ось приклад виклику функції mul
у функції main
:
void main() {
mul(2, 16);
}
Ми побачимо в консолі число 32
.
Висновок
Функції в мові Mash Script дозволяють структурувати та повторно використовувати код, що робить розробку програм більш зручною та ефективною. Правильне використання функцій сприяє покращенню читабельності та підтримці коду.