Функции
Функции являются фундаментальными строительными блоками в программировании. Они позволяют инкапсулировать код в переиспользуемые единицы, делая ваши программы более модульными, читаемыми и поддерживаемыми. Эта документация охватывает синтаксис, использование и различные возможности функций в Eiger.
Объявление функций
Для объявления функции используйте ключевое слово func
, за которым следует имя функции и круглые скобки. Чтобы закрыть тело функции, используйте end
.
Синтаксис
func functionName(parameters) {
~ тело функции
}
Пример
func greet(name) {
emitln("Привет, " + name + "!")
}
Параметры функции
Функции могут принимать параметры, которые представляют собой значения, передаваемые в функцию. Параметры определяются в круглых скобках при объявлении функции.
Синтаксис
func functionName(param1, param2, ...) {
~ тело функции
}
Пример
func printAge(name, age) {
emitln(name + " " + age + " лет")
}
Возвращаемые значения
Функции могут возвращать значение с помощью оператора ret
. Если оператор возврата не указан, функция возвращает nix
(то есть null
в C#).
Синтаксис
func functionName(parameters) {
ret value
}
Пример
func add(a, b) {
ret a + b
}
Область видимости и замыкания
Переменные, объявленные внутри функции, являются локальными для этой функции. Функции также могут создавать замыкания, которые представляют собой функции, которые захватывают и запоминают окружение, в котором они были созданы.
func createCounter() {
let count = 0
ret func() {
count += 1
ret count
}
}
counter = createCounter()
emitln(counter()) ~ 1
emitln(counter()) ~ 2
emitln(counter()) ~ 3
Функции высшего порядка
Функции высшего порядка — это функции, которые принимают другие функции в качестве аргументов или возвращают их в качестве результатов. Они являются ключевой особенностью функционального программирования.
func applyFunction(fn, value) {
ret fn(value)
}
func cube(x) {
ret x ^ 3
}
emitln(applyFunction(cube, 3)) ~ 27