Ответ 1
Да, вы можете определить функции внутри функций:
fn method1() {
fn inner_method1() {
println!("Hello");
}
inner_method1();
inner_method1();
}
Однако внутренние функции не имеют доступа к внешней области. Это обычные функции, которые недоступны вне функции. Однако вы могли передать переменные функции в качестве аргументов. Чтобы определить функцию с определенной сигнатурой, которая все еще может обращаться к переменным из внешней области, вы должны использовать закрытие.