Mam struct, który czasami stawiam statycznie, a czasami chciałbym, aby użytkownicy alokowali na stercie. Czy możliwe jest dopuszczenie obu jako argumentów do funkcji?Umożliwienie zarówno zmiennych statycznych, jak i pól jako argument funkcji?
pub struct MyData {
x: i32
}
static ALLOCATED_STATICALLY: MyData = MyData {x: 1};
// what should my signature be?
fn use_data(instance: Box<MyData>) {
println!("{}", instance.x);
}
fn main() {
use_data(Box::new(MyData{x: 2}));
// this doesn't work currently
use_data(ALLOCATED_STATICALLY);
}
Prawdopodobnie lepiej jest powiedzieć "odniesienie" zamiast "wskaźnik". Ten ostatni sprawia, że myślę o * surowym wskaźniku * '* const T'. – Shepmaster