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

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

Введение

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


Функции

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

Сигнатура функции в 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 поддерживает изменяемые и неизменяемые переменные, предоставляя разработчикам больший контроль над управлением данными.

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

В Wave переменная по умолчанию изменяемая (mutable). Это значит, что её значение можно изменить во время выполнения программы.

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

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

В приведенном примере:

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

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

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

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

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

Здесь:

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

Однако, если вы хотите сделать let переменную временно изменяемой, можно использовать модификатор mut.

let mut y :i32 = 5;
y = 10;

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

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

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

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

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