>>32
> デフォルトimmutableでmoveで借用という制限

プログラミング歴があるならば
デフォルトでimmutableの方がありがたいことにほとんどの人が賛同する
そのためimmutableだけの言語まであるくらいだ
Rustはmutableも使える言語だからそこに制限はない

moveについてはその方が複写よりも当然効率が良いため
何らかの事情で複写したい時はcloneすればよいので困らない
効率が悪くても毎回複写がいいならばCopyトレイトを宣言で可能
つまりRustは3種類の方法を提供していてそこに制限はない

借用とは参照を使うことであってこれも制限ではない
そして参照渡しをするなどの実質の参照を扱う言語は普通に多い
Rustにおける参照とはそれらよりも抽象化された概念だがほぼ同じ
何か制限を設けているわけではなくむしろプログラマーへの選択を与えている
複写(Copy/clone)して渡すのか参照を渡すのかそれともそのものを渡す(move)のかを選べる