Niedawno zaczalem uczyc sie rusta, na poczatku spodobaly mi sie koncepty immutability by default
i ownership
, ale jak zaczalem sobie cos tam dlubac to koniec koncow 90% moich funkcji przyjmowalo parametry & mut ...
, czy to self
czy jakies kontenery. Zawsze jak musze dodac do parametru czy to &
, czy mut
to mam wrazenie, ze cos robie nie tak lub naookolo i powinienem tego za wszelka cene unikac. Z drugiej strony wezmy przykladowy kod ze strony nphysics:
fn main() {
let mut mechanical_world = DefaultMechanicalWorld::new(Vector3::new(0.0, -9.81, 0.0));
let mut geometrical_world = DefaultGeometricalWorld::new();
let mut bodies = DefaultBodySet::new();
let mut colliders = DefaultColliderSet::new();
let mut joint_constraints = DefaultJointConstraintSet::new();
let mut force_generators = DefaultForceGeneratorSet::new();
loop {
// Run the simulation.
mechanical_world.step(
&mut geometrical_world,
&mut bodies,
&mut colliders,
&mut joint_constraints,
&mut force_generators
)
}
}
```
Wszedzie muty i borrowy. Pomysly z immutability i ownershipem sa sie fajne, ale w praktyce wydaja sie uciazliwe jak kula u nogi. Czy tak wyglada wiekszosc kodu napisanego w ruscie?