- 993 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 19:52:16.37 ID:E2oosySA.net]
- >>972
今どきの言語ならそんなことは起きないんじゃないかな 例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど (1) まず名前空間が分かれている 例えば str::replace() や Option::replace() など (2) 次にメソッドの場合は名前空間を明示する必要がない 例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに s.replace("価格", "値段"); // → "値段: 123円" (3) 更にジェネリックな引数も取れる 例えば文字列""ではなく文字''も指定可能 s.replace('円', "万円"); // → "価格: 123万円", 文字判定関数を指定することも可能 s.replace(char::is_numeric, "*"); // → "価格: ***円" このように様々な対象に対して様々な引数で用いられていても 同名のreplace()で曖昧になることもなくそれぞれを使うことができる 昔のように長い関数名を付けずに済むようになっている
|

|