Подтвердить что ты не робот

Локальная функция в Rust

В Rust существует какой-либо способ создать локальную функцию, которая может быть вызвана более одного раза. То, как я буду делать это в Python, это:

def method1():
  def inner_method1():
    print("Hello")

  inner_method1()
  inner_method1()
4b9b3361

Ответ 1

Да, вы можете определить функции внутри функций:

fn method1() {
    fn inner_method1() {
        println!("Hello");
    }

    inner_method1();
    inner_method1();
}

Однако внутренние функции не имеют доступа к внешней области. Это обычные функции, которые недоступны вне функции. Однако вы могли передать переменные функции в качестве аргументов. Чтобы определить функцию с определенной сигнатурой, которая все еще может обращаться к переменным из внешней области, вы должны использовать закрытие.