たとえば
let age = read_line();
let age = age.parse::<u32>().expect("Invalid age");
みたいにすれば、あるべき型の age にしかアクセスできなくなるので、 age_str と age_int が共存するよりも望ましいと考えることができる
あと、シャドーイングをすると、たとえばこの例だと「2回目の束縛以降で、不正でありうる文字列型の URL データにアクセスできなくなる」という利点がある (URL でなく文字列として取り出したければ、明示的にそういう操作を行うべき)
たとえば
let url = "https://example.com/"; // ここで文字列
let url = Url::parse(url).expect("Invalid URL"); // ここで Url 型
みたいなシャドーイングしたい場合があって、これもまあ賛否分かれるかもしれないけど、あくまで変数の意味を扱ってロジックを書きたいならこれもアリだと思いますね
ほんとに書いてある・・・・>< https://www.ietf.org/rfc/rfc2324.txt
これで言うある種のミニマリストの発想って「ブルータリズム」って言うらしい><(つい最近知った><)
https://mstdn.nere9.help/@orange_in_space/100371977033749683