metaltyphoon 6 days ago

This was one of the best decisions that Rust and Go did; not have constructors. In C# this is super annoying too, specially when you need an async operation to construct a type. This is usually done by having an private constructor and then using a static public method to create the type.

1
Conscat 6 days ago

Rust and Go have no form of a conversion operator (even if not a constructor), which makes scripting a type system essentially impossible. Numeric libraries in both of those languages are extremely cumbersome, largely for this reason.

tialaramex 5 days ago

I don't understand this comment at all.

Rust not only has the 'as' operator for this exact purpose, but it also has the suite of traits From, Into, TryFrom and TryInto for the infallible and fallible conversions respectively.

Conscat 4 days ago

As is an infix operator, it can never be invoked implicitly to draw these relationships between different types.