Оголошення функцій
Функції в 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 дозволяють структурувати та повторно використовувати код, що робить розробку програм більш зручною та ефективною. Правильне використання функцій сприяє покращенню читабельності та підтримці коду.

