> そしてasync/await・Promise以前のtry-catchは使い物になりません。
これは言いすぎ。try-catchはろくでもないが、無いよりはましだし、同期でシングルデータならまあ問題ない。
だからGoもtry-catchでも良かったはずだが、採用してないところを見ると、
「多くの場合はtry-catchがgoroutineを跨いで使い物にならない」と思ったのだろう。
ゆうてもGo流の多値返しはCよりはまし程度で、それ以上でもないが。
ただ、try-catchがgoroutineを跨ぐ想定なら、
メインスレッドが仕事を起動し、各goroutineで子細の処理をこなす、マルチスレッドの構造を想定している。
非同期なら、メインスレッドはイベントループだけを担い、手が空いたgoroutineにその都度ジョブを発給する事になるけども、
この場合はジョブの起動はgoroutine内からで、try-catchは完全に機能する。
JSの場合はI/Oを非同期にする事を義務づけらてるからtry-catch内にI/Oが入った時点で意味を為さないし、大体このパターンだが、
Goの場合はI/Oも同期で書けるのだから、全く問題ない。
だからやっぱり元々の想定はマルチスレッドで、文法的には非同期も特に苦労せずに書ける、ってことだと思うのだけど。
(JS的な全面的非同期を想定していた場合は、try-catchを不採用にする理由がない。当時でも既にtry-catchが主流だった)
>>917
> RustはGoと同じくtry-catchを採用していないね
これ、今見たところPanic方式らしいが、もしかしてGo由来?
try-catchは好きな人は大好きのようだが、俺にはどうにもあれがいいとは思えない。
個人的には、リソース返却ならC#のusingが正解で、
リトライなら、大体元データが壊れてて無理で諦めるのでPanicで問題ない。(エラー通知だけ出来れば十分)
だからtry-catchは非同期では使えない過去の異物として消滅して欲しかったのだけど、
C#がasyncでも無理矢理try-catch出来るようにしたのでちょっと驚いてる。
そこまでしてtry-catchしたくもないし、する内容もないんですけど、ってね。
ある意味JSの「catchなんてしなくても何も問題ないです」というJavaから見れば卒倒しそうな仕様も、解の一つではあると見てる。
Go language part 4
レス数が900を超えています。1000を超えると表示できなくなるよ。
937デフォルトの名無しさん
2022/02/26(土) 01:13:02.46ID:kpnhrKVlレス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【速報】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★2 [nita★]
- 高市総理 台湾有事めぐる答弁 撤回せず [♪♪♪★]
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★3 [nita★]
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…★3 [Anonymous★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 ★2 [蚤の市★]
- 【フジ】『なるほど!ザ・ワールド』『クイズミリオネア』復活を発表 『101回目のプロポーズ』の続編も制作決定 「ニーズある?」の声 [冬月記者★]
- 【悲報】高市「台湾有事、誤解を与える言い方だったのは反省します😤」 [359965264]
- 橋下徹「世の中は自己責任が原則。それが嫌なら日本から出ていくかあなたが政治家になって国を変えるしかない」 [769050516]
- TV局「中国在住日本人さん、今の中国の実情を教えて」→ポジティブな話が集まりすぎて愛国者ブチギレ [834922174]
- モスバーガーのフォカッチャ終わってるじゃねーか!ふざけんな!
- 【速報】Nano Banana、オープンソース版が公開、ローカルで画像生成AIが可能に😲 [422186189]
- 昔バレエで聞いた曲を探してくれないか?
