>=
and <
= match the mathematical operators. The question you want to ask is why doesn't it use =
for equality, and the answer is that =
is already used for assignment (inherited from C among other languages).
In theory a language could use =
for assignment and equality but it might be a bit confusing and error prone. Maybe not though. Someone try it and report back.
It does still have a traditional assignment operator. You can assign values to mutable variables.
Also I would say let-binds are still pretty much assignment; they just support destructuring. Plenty of languages support that to some extent (JavaScript for example) and you wouldn't say they don't have assignment.
I don't think it affects the ability to overload
=
anyway. I think there aren't any situations in Rust where it would be ambiguous which one you meant. Certainly none of the examples you gave compile with both=
and==
. Maybe there's some obscure case we haven't thought of.