Я изучаю Rust и играю с чертами.
В этом примере я получаю следующую ошибку:
trait HasArea {
fn area(&self) -> f64;
}
type FPTR = fn() -> f64;
trait MyTrait {
fn hof_test(&self, func: FPTR) -> FPTR {
func
}
}
struct Square {
side: f64,
}
impl HasArea for Square {
fn area(&self) -> f64 {
self.side * self.side
}
}
impl MyTrait for Square {}
fn main() {
let sq = Square { side: 6.2 };
let area = sq.hof_test(sq.area)();
}
Ошибка:
error[E0615]: attempted to take value of method `area` on type `Square`
--> src/main.rs:26:31
|
26 | let area = sq.hof_test(sq.area)();
| ^^^^ help: use parentheses to call the method: `area()`
детская площадка
Есть ли способ назвать Square.area()
вот так?