get_options_mut(&mut self) -> &mut Options;
fn get_options(&self) -> &Options;
fn on_click(&mut self, f: Box<dyn Fn() -> ()>) {
self.get_options_mut().f_click = Box::new(f);
}
fn on_hover(&mut self, f: Box<dyn Fn() -> ()>) {
self.get_options_mut().f_hover = Box::new(f);
}
fn click(&self) {
(self.get_options().f_click)(); - можете пож сказать, почему здесь оно берется в скобки?
}
fn hover(&self) {
(self.get_options().f_hover)(); - и здесь?)
}
}
сам код - https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=02d9f1f708ee95bbdd49a659f6cca6c9
Потому что f_click: Fn(). если не брать в скобки, то будет аналогично вызову ф-ии f_hover, которой не существует
а что тогда мы данном случае делаем? какую фун-цию вызываем?
Которая в переменной f_hover, внутри структуры
а почему там кстати f_click без скобок? вроде же она тоже обозначена как ф-ция
это не ф-ия, это переменная внутри struct сравни с тем, что пишем внутрь impl ... { }
И да, и нет То в первую очередь переменная внутри struct, а не функция внутри impl
@Act0r1 , ты чего там в моем коде копаешься? ))
Ахахаха, да вот интересно стало:))))
Надо еще Стасу показать ))
Обсуждают сегодня