スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/
探検
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2022/04/17(日) 17:52:35.38ID:KG26dcth976デフォルトの名無しさん
2022/06/20(月) 19:24:15.90ID:cgMFd80D そういうのGitHubでやったほうがいいよ
977デフォルトの名無しさん
2022/06/20(月) 19:52:16.37ID:E2oosySA >>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()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている
今どきの言語ならそんなことは起きないんじゃないかな
例えば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()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている
978デフォルトの名無しさん
2022/06/20(月) 20:07:59.34ID:8GsqMDfw 次スレ立てるのはもうそろそろかな
979デフォルトの名無しさん
2022/06/20(月) 20:46:13.10ID:6L0FdSjR >>975
アスペっぽい ガイジ
アスペっぽい ガイジ
980デフォルトの名無しさん
2022/06/20(月) 21:02:14.54ID:Hg6hQLhP >>963
ガイジ乙!
ガイジ乙!
981デフォルトの名無しさん
2022/06/20(月) 21:08:22.86ID:mSfgS0Wr982デフォルトの名無しさん
2022/06/20(月) 21:24:31.48ID:j7veV6LL シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?
983デフォルトの名無しさん
2022/06/20(月) 21:29:29.90ID:ofPdKV5n >>982
その2つがどう関係あるのか説明してくれ
その2つがどう関係あるのか説明してくれ
984デフォルトの名無しさん
2022/06/20(月) 21:39:32.57ID:j7veV6LL シャドーイング 同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き
985デフォルトの名無しさん
2022/06/20(月) 21:50:35.85ID:lr2wAV+c 引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。
986デフォルトの名無しさん
2022/06/20(月) 22:04:20.07ID:j7veV6LL せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ
987デフォルトの名無しさん
2022/06/20(月) 22:09:55.02ID:xRbFgwNB >>984
なるほどそういう意味か
イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる
なるほどそういう意味か
イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる
988デフォルトの名無しさん
2022/06/20(月) 22:17:07.52ID:G0GSIi1k989デフォルトの名無しさん
2022/06/20(月) 22:26:34.16ID:GOjINbNj >>982
効果が真逆という結論のようです
> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果
確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね
効果が真逆という結論のようです
> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果
確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね
990デフォルトの名無しさん
2022/06/20(月) 22:30:15.50ID:j7veV6LL 書き込みする前に読み返したか?
ふわっふわしてるぞ
ふわっふわしてるぞ
991デフォルトの名無しさん
2022/06/20(月) 22:36:51.94ID:j7veV6LL Rsutは関数オーバーロードがないから
int(price_str)できない
int(price_str)できない
992デフォルトの名無しさん
2022/06/20(月) 22:44:52.02ID:d/VymnYf993デフォルトの名無しさん
2022/06/20(月) 22:52:38.23ID:j7veV6LL Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある
x.abs()と言う不思議な感じになる
-1_i32.abs()
は -1になる変な言語
他の言語ではmath.abs()とかにある
x.abs()と言う不思議な感じになる
-1_i32.abs()
は -1になる変な言語
994デフォルトの名無しさん
2022/06/20(月) 22:54:18.35ID:GOjINbNj >>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?
995デフォルトの名無しさん
2022/06/20(月) 22:55:48.87ID:j7veV6LL996デフォルトの名無しさん
2022/06/20(月) 22:59:31.50ID:bmv2finQ997デフォルトの名無しさん
2022/06/20(月) 22:59:45.45ID:4VWLMq9p >>993
i32::abs(-1)
i32::abs(-1)
998デフォルトの名無しさん
2022/06/20(月) 23:01:03.11ID:j7veV6LL parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味
そのparseだってどうせトレイトで実装してんだろ?
そっちのほうが不気味
そのparseだってどうせトレイトで実装してんだろ?
999デフォルトの名無しさん
2022/06/20(月) 23:02:42.38ID:MklghZCY >>985
ジェネリクスはまた別物だろ。
ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
ジェネリクスはまた別物だろ。
ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
1000デフォルトの名無しさん
2022/06/20(月) 23:03:17.12ID:j7veV6LL10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- コメ「余っている」年明けに下落も? 大量の在庫が倉庫を圧迫、赤字の恐れ…業者「値下げするしか…」 [Hitzeschleier★]
- 「レーダー照射」なぜ中国は素直に謝罪しないのか 非を認めず反論逆ギレ、ごめんなさいと言えない国情 [七波羅探題★]
- 松村沙友理、スタバは好きだけど「やっぱコーヒーに700円800円が…」「家でお湯わかしてやったらタダやん」 [muffin★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- 参政・神谷代表「なぜ日本では多くの中国人の方がキャッシュで不動産を買えるのか」「現金はどこから来ているのか」 片山大臣の回答は [少考さん★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★3 [蚤の市★]
- 【速報】福岡でまた刺される [663382246]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【速報】Switch 2 値上げ [201193242]
- 月曜日のんなぁ…お疲れ様なのらね…✋🍬ハウス🏡
- 【悲報】赤坂の超高級プライベートサウナ(120分19,000円)で火事🔥男女カップル死亡 [923545898]
- 【愛国者悲報】パンダ、ついに日本から全ていなくなる...上野の双子パンダ1月返還で。すべてのすべての完全にALL [856698234]
