Ho una struttura, che a volte istanzio staticamente, ea volte vorrei che gli utenti allocassero sull'heap. È possibile consentire entrambi come argomenti per una funzione?Consentire sia variabili statiche che caselle come argomento di funzione?
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);
}
Probabilmente è meglio dire "riferimento" anziché "puntatore". Quest'ultimo mi fa pensare a un * pointer crudo * '* const T'. – Shepmaster