3 ms·
Why? The builder pattern is great.
by maxbond 4y ago
Why? The builder pattern is great.
- joseluis 4y agoHaving both approaches available would be better IMHO. Builder pattern is very nice but I frequently miss having named arguments too. Even if macros can partially fullfill that need, it's not the same and introduces more quirks and complexity...
- maxbond 4y agoFair enough.
- Ygg2 4y agoProblem with named parameters is that they make renaming function params a breaking change.
- metaltyphoon 4y agoUnless the IDE doesn’t support this refactoring? It’s ridiculously easy in C# and VS or VSC.
- kevincox 4y agoIt gets awkward really fast when you may need to set a value. let mut foo = build_foo() .with_a(8); if need_to_set_b { foo = foo.with_b(false); } let foo = foo.build();
- maxbond 4y agoWould look very similar with named arguments, no?
- kevincox 4y agoMaybe. It depends a bit on how they are implemented. If there is a good way to pass "default" then you can just have a condition for that one argument. But if there is no way to pass "default" then it can get hairy.
- maxbond 4y agoFor sure. I would like to see that in Rust as well, that would be nice. I am willing to put up with the lack of variadic & named arguments for the goodness the borrow checker brings me, but I can see how that would improve the ergonomics substantially.
- svieira 4y agoNot if you do what Dart did: https://medium.com/dartlang/making-dart-a-better-language-for-ui-f1ccaf9f546c https://medium.com/dartlang/making-dart-a-better-language-fo...