Перейти к основному содержимому

Функции и переменные

Введение

Основная философия дизайна языка Wave заключается в балансе между низкоуровневыми возможностями и высокоуровневыми абстракциями, что позволяет создавать эффективную и гибкую среду для разработки программного обеспечения. В этом разделе представлены основные компоненты программы на Wave: функции и переменные. Эти компоненты необходимы для организации логики программы и управления данными. Понимание того, как определять и работать с функциями и переменными, позволит максимально использовать потенциал Wave.


Функции

В языке Wave функция представляет собой переиспользуемый блок кода, который может выполняться независимо. Функции инкапсулируют конкретное поведение и могут быть вызваны в любой части программы, когда это необходимо. Это позволяет выполнять вычисления, управлять операциями ввода/вывода или разделять код на управляемые части.

игнатура функции в Wave начинается с ключевого слова fun, за которым следует имя функции, параметры (если есть), а затем тело функции, заключенное в фигурные скобки {}.

Определение функции

Пример определения простой функции в Wave:

fun main() {
// Напишите код здесь
}
  • Функция main всегда является точкой входа в программу и обязательна для выполнения.
  • Функции могут принимать параметры и возвращать значения. Тип возвращаемого значения указывается после стрелки ->.

Пример: простая функция

fun add(a :i32, b :i32) -> i32 {
return a + b;
}

fun main() {
var result = add(5, 7); // Вызов функции add
println(result); // Вывод: 12
}

В этом примере:

  • Функция add принимает два целых числа a и b, и возвращает их сумму.
  • Функция main вызывает add и выводит результат.

Переменные

Переменные используются для хранения и манипуляции данными в программе. Wave поддерживает как изменяемые (mutable), так и неизменяемые (immutable) переменные, давая разработчику контроль над управлением данными.

Изменяемые переменные

По умолчанию переменные в Wave являются изменяемыми. Это означает, что их значения можно изменять в процессе выполнения программы.

Изменяемые переменные объявляются с помощью ключевого слова var.

var x :i32 = 10; // Изменяемая переменная
x = 20;

В этом примере:

  • x — изменяемая переменная, которая изначально имеет значение 10, но затем может быть изменена на 20.

Неизменяемые переменные

Переменные, объявленные как неизменяемые (immutable), нельзя изменять после того, как им присвоено значение.

Неизменяемые переменные объявляются с помощью ключевого слова var imm.

var imm y :i32 = 5;     // Неизменяемая переменная
// y = 10; // Ошибка: значение неизменяемой переменной нельзя изменить

В этом примере:

  • y — неизменяемая переменная, и попытка изменить её значение приведет к ошибке компиляции.

Пример объявления переменных

Примеры объявления различных типов изменяемых и неизменяемых переменных:

var x :i32 = 10;                    // Изменяемая целочисленная переменная
var imm y :f64 = 3.14159; // Неизменяемая переменная с плавающей точкой
var name :str = "Wave"; // Изменяемая строковая переменная
var imm is_active :bool = true; // Неизменяемая логическая переменная
  • x — изменяемая переменная типа целое число.
  • y — неизменяемая переменная типа с плавающей точкой.
  • name — изменяемая строка.
  • is_active — неизменяемая логическая переменная.

В языке Wave для объявления изменяемых переменных используется ключевое слово var, а для неизменяемых переменных — var imm.

Разделение на изменяемые и неизменяемые переменные помогает лучше контролировать целостность данных и состояние программы. Это позволяет создавать более устойчивый и предсказуемый код.