公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part18
https://mevius.5ch.net/test/read.cgi/tech/1670663822/
探検
Rust part19
■ このスレッドは過去ログ倉庫に格納されています
2023/01/17(火) 12:41:32.25ID:nikBFIMQ
2023/01/17(火) 12:41:51.84ID:esjs4yiD
たておつ
2023/01/17(火) 14:00:56.91ID:MqwPrlrO
89 それでも動く名無し 2023/01/10(火) 23:26:51.53 ID:pA5+SQtP0
痴漢ものAVと違ってこういうガチ痴漢は臨場感が違うわ
抵抗されて上手く行かなかったり、たまに他の客にバレて逃走してるからな
マジで興奮する
https://i.imgur.com/My4nuB1.jpg
https://i.imgur.com/ttXkWGH.jpg
https://i.imgur.com/upphmaU.jpg
https://gcol;le.net/product_info.php/products_id/763929/ref/15062/affiliate_banner_id/1
520 名無しさん@ピンキー sage 2023/01/03(火) 21:36:57.85 ID:AS4vmq4R0
不朽の名作が復活していたので
https://i.imgur.com/SGsDTp5.jpg
https://i.imgur.com/4R20ojB.jpg
https://gcol;le.net/product_info.php/products_id/863650/ref/15062/affiliate_banner_id/1
痴漢ものAVと違ってこういうガチ痴漢は臨場感が違うわ
抵抗されて上手く行かなかったり、たまに他の客にバレて逃走してるからな
マジで興奮する
https://i.imgur.com/My4nuB1.jpg
https://i.imgur.com/ttXkWGH.jpg
https://i.imgur.com/upphmaU.jpg
https://gcol;le.net/product_info.php/products_id/763929/ref/15062/affiliate_banner_id/1
520 名無しさん@ピンキー sage 2023/01/03(火) 21:36:57.85 ID:AS4vmq4R0
不朽の名作が復活していたので
https://i.imgur.com/SGsDTp5.jpg
https://i.imgur.com/4R20ojB.jpg
https://gcol;le.net/product_info.php/products_id/863650/ref/15062/affiliate_banner_id/1
2023/01/17(火) 14:01:08.20ID:MqwPrlrO
すみません、誤爆しました
2023/01/17(火) 14:04:39.15ID:QD1aLS8A
. :::';;;;: . . ..,,,;;:
. . :;;;;;:.:;;,, ..:.;;;;.:
:;;''' .:';;; . . .:.:;;;;;':. . . .,,,,;,,...,,
.:;;;' : .:;;;;; .: ,,,;;;,,, , .:;;;';;''' ''';;;;,,
. :.;;;;' . .: ;;;;;;;;'''' ';;;:.:.. ,;: . . ''''''"
';;:;' ''''; .:.';;;;,,;;.
''' ,.:.:';;;;,,,,
,、—-、 .;.';:;.:.: ;;;;;;:.;.;...
-、_ (_二ニ=っ,、;;;:.:;.:;...:.:...'''''''''''
`‐-、_ ( ´∀)f、 `''、:..:.:. .:
`-,ノ つ; /
(〇 〈-`'"
(_,ゝ ) `‐-、_
(__) `'‐-、,_..
`‐-、._
. . :;;;;;:.:;;,, ..:.;;;;.:
:;;''' .:';;; . . .:.:;;;;;':. . . .,,,,;,,...,,
.:;;;' : .:;;;;; .: ,,,;;;,,, , .:;;;';;''' ''';;;;,,
. :.;;;;' . .: ;;;;;;;;'''' ';;;:.:.. ,;: . . ''''''"
';;:;' ''''; .:.';;;;,,;;.
''' ,.:.:';;;;,,,,
,、—-、 .;.';:;.:.: ;;;;;;:.;.;...
-、_ (_二ニ=っ,、;;;:.:;.:;...:.:...'''''''''''
`‐-、_ ( ´∀)f、 `''、:..:.:. .:
`-,ノ つ; /
(〇 〈-`'"
(_,ゝ ) `‐-、_
(__) `'‐-、,_..
`‐-、._
2023/01/17(火) 14:25:12.33ID:IvlgRnTP
ここが新しいおちんぽスレと聞いて
7デフォルトの名無しさん
2023/01/17(火) 14:31:29.73ID:AjT+2M0N 最低だな
犯罪者予備軍やん
犯罪者予備軍やん
2023/01/17(火) 16:35:46.70ID:+0g0VEsU
通報しといたよ
2023/01/17(火) 16:41:04.96ID:mmIRzxLT
はよ立て直せ
2023/01/18(水) 10:59:16.69ID:j7LzfbP6
2023/01/18(水) 12:30:23.66ID:NvrWVfIW
おちんぽまんまんスレ違いと聞いて
2023/01/18(水) 20:15:50.70ID:CRD98AUE
ResultがErrの時だけブロックを実行するifってどうやって書けばいいの?
if Err(_) = fs::read_to_string("foo.txt") { err() }
は通らないようだが
if Err(_) = fs::read_to_string("foo.txt") { err() }
は通らないようだが
2023/01/18(水) 20:29:34.91ID:vXgVoSzN
if let Err(_)
2023/01/18(水) 20:41:58.72ID:CRD98AUE
>>13
サンキュー。行けた
サンキュー。行けた
2023/01/19(木) 04:27:00.05ID:UpsgRjC+
2023/01/19(木) 07:51:52.20ID:kHXiKnOP
>>15
それが少し前に入ってみんな喜んでた let else だね。
let Ok(value) = result else { return };
/* Ok のときやりたい処理 */
みたいにエラーは早期リターンして、正常系をインデント下げて書くみたいなことができる。
俺は Err は anyhow で呼び出し側に返しちゃう事が多いから正直あまり使わないけど。
それが少し前に入ってみんな喜んでた let else だね。
let Ok(value) = result else { return };
/* Ok のときやりたい処理 */
みたいにエラーは早期リターンして、正常系をインデント下げて書くみたいなことができる。
俺は Err は anyhow で呼び出し側に返しちゃう事が多いから正直あまり使わないけど。
17デフォルトの名無しさん
2023/01/19(木) 10:36:41.67ID:pws6L0p3 Option/Result系は?演算子で素直に返すしそれ以外でもResultを返す関数に切り出して呼び出し側で?演算子にするからlet-elseは使い所がよく分からん
2023/01/19(木) 11:05:24.00ID:MVgEnHGb
>>15
そもそもreturnしない。err()の中身はエラーメッセージを出力後にパニックさせるので一方通行
そもそもreturnしない。err()の中身はエラーメッセージを出力後にパニックさせるので一方通行
19デフォルトの名無しさん
2023/01/19(木) 13:52:46.10ID:i8wJP128 expectじゃだめなのかな?
もう少しちゃんとしたロギングをしたいならlog crate使ってlog_expectみたいな形でunwrap
もう少しちゃんとしたロギングをしたいならlog crate使ってlog_expectみたいな形でunwrap
20デフォルトの名無しさん
2023/01/19(木) 14:21:48.46ID:plizw9iy 自分で書いといてあれだからやっばりexpect使うケースじゃないな
panicさせるよりもErrのまま最上位まで返してそこでログ出力含めてハンドリング
panicさせるよりもErrのまま最上位まで返してそこでログ出力含めてハンドリング
2023/01/19(木) 18:44:58.53ID:kHXiKnOP
expectってライブラリの動作確認とかサンプルコードとか、トップレベルで雑なことしたいとき以外使わなくない?
深めの階層で見かけたら身構えちゃいそう。
深めの階層で見かけたら身構えちゃいそう。
2023/01/19(木) 19:25:25.54ID:UlqzrrZi
論理的に安全にunwrapできるってわかってる箇所には使うかな
もしパニックになるならそもそも致命的な論理バグがあるってことになるから
変にエラー処理するより早期に落とした方がいいってケース
もしパニックになるならそもそも致命的な論理バグがあるってことになるから
変にエラー処理するより早期に落とした方がいいってケース
2023/01/19(木) 20:03:32.07ID:KyLvYp+m
横からですまんが安全なら unwrap() でよくない?
expect() にする理由ってなんだろう
expect() にする理由ってなんだろう
2023/01/19(木) 20:30:48.24ID:UlqzrrZi
個人的には Regex::new(r"").unwrap() みたいに自明ならunwrap
安全にunwrapできる理由を書きたいならコメントに書くよりexpectに書くかな
安全にunwrapできる理由を書きたいならコメントに書くよりexpectに書くかな
2023/01/19(木) 20:45:59.09ID:kHXiKnOP
なるほどね。自明な時に unwrap したいけど、仮に起きたときに原因調査しやすいよう expect というのは納得できる。
2023/01/19(木) 20:51:26.80ID:kHXiKnOP
あ、違うか。unwrapできる理由を書くわけか。
paniced at 'ここでは 0 は渡ってこないので自信を持って除算する'
みたいな出力になるから割と恥ずかしいな。
paniced at 'ここでは 0 は渡ってこないので自信を持って除算する'
みたいな出力になるから割と恥ずかしいな。
2023/01/19(木) 21:03:13.60ID:KyLvYp+m
28はちみつ餃子 ◆8X2XSCHEME
2023/01/19(木) 22:24:19.09ID:uAmZfzQm >>27
自分意外が使う前提のときのほうが except が必要だと思う。
外部から与えられる情報が仕様外の場合 (事前条件が満たされない場合) など
使い方が誤っているときに起こりえるなら except で説明があったほうがいいんじゃない?
内部的なロジック的に起こりえないと確信しているところは unwrap でいいと思う。
間違いがあったときに panic! してくれることには変わりないしバックトレースも出せるんで、
特に必要だと思う箇所だけ説明を付けておけば十分でしょ。
自分意外が使う前提のときのほうが except が必要だと思う。
外部から与えられる情報が仕様外の場合 (事前条件が満たされない場合) など
使い方が誤っているときに起こりえるなら except で説明があったほうがいいんじゃない?
内部的なロジック的に起こりえないと確信しているところは unwrap でいいと思う。
間違いがあったときに panic! してくれることには変わりないしバックトレースも出せるんで、
特に必要だと思う箇所だけ説明を付けておけば十分でしょ。
2023/01/19(木) 22:58:51.51ID:TbDEskmg
2023/01/20(金) 00:14:17.87ID:+VmzUJ32
Optionを返す関数が2つ(以上)あり、
Someを得られるまで遅延評価で順に試す場合に、
func1(arg)
.or_else(|| func2(arg))
と非対称で手間なのを改善する方法ありますか?
例えば func1(arg) || func2(arg) と書けると便利だと思いました
Someを得られるまで遅延評価で順に試す場合に、
func1(arg)
.or_else(|| func2(arg))
と非対称で手間なのを改善する方法ありますか?
例えば func1(arg) || func2(arg) と書けると便利だと思いました
2023/01/20(金) 00:47:21.47ID:sbzTb5wM
イテレータ化してchain()で繋げるとか?
でも手間は変わらないか
でも手間は変わらないか
32デフォルトの名無しさん
2023/01/20(金) 02:52:18.79ID:rWEP7xyW2023/01/20(金) 11:05:21.77ID:cF/QvtGv
2023/01/20(金) 13:36:20.52ID:pmLm7hT0
ちんちん!シュッ!シュッ!!シュッ!!!
35デフォルトの名無しさん
2023/01/20(金) 21:59:08.95ID:A12k25he2023/01/21(土) 14:16:15.90ID:tEFzN85r
1.すべてmainまで返してmainでエラー処理をする
2.エラー処理用の関数を作ってそれを呼び出す
3.パニックハンドラでエラーメッセージを出力
くらいしか思いつかん。ググってもThe Bookに書いてある程度のことしか出てこなくて参考にならない
3はpanic!やexpectで脱出できるのは楽だけどハンドラへ渡せるデータが文字列のみでなのがいまいち
またエラー処理に必要な情報を文字列にエンコードする必要がある
2ならmainまで戻らずともエラー処理できるのでこの方向で実装中
2.エラー処理用の関数を作ってそれを呼び出す
3.パニックハンドラでエラーメッセージを出力
くらいしか思いつかん。ググってもThe Bookに書いてある程度のことしか出てこなくて参考にならない
3はpanic!やexpectで脱出できるのは楽だけどハンドラへ渡せるデータが文字列のみでなのがいまいち
またエラー処理に必要な情報を文字列にエンコードする必要がある
2ならmainまで戻らずともエラー処理できるのでこの方向で実装中
37デフォルトの名無しさん
2023/01/21(土) 14:57:31.49ID:hb5eMxVX log crateやtrace crateはチェック済み?
logは準標準、実装は好きなのを選ぶ必要がある
traceはtokio-rs製
logは準標準、実装は好きなのを選ぶ必要がある
traceはtokio-rs製
2023/01/21(土) 16:41:16.71ID:3Tq4pZe4
2023/01/21(土) 18:30:23.18ID:/bIQjlWu
>>37
info!やerror!ってpanic!やexpectと本質的に変わらないような。いずれにしろ呼び出し側で文字列の加工が必要
GUIへの対応方法もよくわからない。開発時はもちろんコンソールへの出力を使うけど
運用中のエラー出力はGUIのポップアップメッセージがメインになるし
あとソースコードは600行弱くらいだけどリリースビルドで生成されるバイナリは800KB弱もあるんで
これ以上でかくしたくないというのもある
info!やerror!ってpanic!やexpectと本質的に変わらないような。いずれにしろ呼び出し側で文字列の加工が必要
GUIへの対応方法もよくわからない。開発時はもちろんコンソールへの出力を使うけど
運用中のエラー出力はGUIのポップアップメッセージがメインになるし
あとソースコードは600行弱くらいだけどリリースビルドで生成されるバイナリは800KB弱もあるんで
これ以上でかくしたくないというのもある
40デフォルトの名無しさん
2023/01/21(土) 22:40:10.67ID:wag66I/R ロガーを設定/生成するコード
ロガーを使うコード
ロガー自体のコード
それぞれ分けて考える
ロガーを使うコードではファイル出力だろうが標準出力だろうがinfo!やerror!でコードを変える必要はない
使うロガーを変えたり設定を変えたりする
ロギングライブラリを使うのは自前で作るのは面倒だから
ロガーを使うコード
ロガー自体のコード
それぞれ分けて考える
ロガーを使うコードではファイル出力だろうが標準出力だろうがinfo!やerror!でコードを変える必要はない
使うロガーを変えたり設定を変えたりする
ロギングライブラリを使うのは自前で作るのは面倒だから
41デフォルトの名無しさん
2023/01/22(日) 02:33:12.00ID:5IaN6zUW 書籍で最初に読むとしたら
平家蟹の方?
それとも可愛い方?
平家蟹の方?
それとも可愛い方?
2023/01/22(日) 02:45:54.00ID:DAK16wxY
平家蟹がかわいくないとか、こいつアンチか?
43デフォルトの名無しさん
2023/01/22(日) 02:46:40.77ID:4BdfAMug2023/01/22(日) 12:43:00.06ID:WLCvNrGP
>>39
ログはログ。何が起きたか記録するだけ。ログレベルが何であれ副作用は起こさない。
エラーはエラー。発生したときにどうハンドリングするかはプログラムの性質で決める。
パニックはそのまま稼働したらまずい状況に陥ったら時だけ起こす。
ログはログ。何が起きたか記録するだけ。ログレベルが何であれ副作用は起こさない。
エラーはエラー。発生したときにどうハンドリングするかはプログラムの性質で決める。
パニックはそのまま稼働したらまずい状況に陥ったら時だけ起こす。
45デフォルトの名無しさん
2023/01/22(日) 14:52:04.22ID:RMpOCJx1 >>41
モンタギュー蟹の方
モンタギュー蟹の方
46デフォルトの名無しさん
2023/01/22(日) 15:29:33.81ID:WCVJRVcD アプリケーションのレイヤーでパニック起こすのはバグの時だけ
2023/01/25(水) 16:19:44.22ID:zlgPT3s2
ネットワーク前提にしてる時に、panicになるのはバグではないよ?
2023/01/25(水) 16:35:00.31ID:LG3Fy/yw
うっわすっげー読みやすいコードと思ってよく見てみたら
過去に自分が書いたやつだった(´・ω・`)
過去に自分が書いたやつだった(´・ω・`)
2023/01/25(水) 16:39:27.19ID:5onhVltK
天才か?
2023/01/25(水) 16:40:49.73ID:GSIKYco3
過去の自分は他人だと思え、がプログラミングの基本
2023/01/25(水) 17:17:39.71ID:xORIlv/9
過去のことを忘れていても過去の自分が考えることは今の自分が考えることとあまり差がない。
名前の付け方とかは何度考えても同じような状況なら同じ名前を付けるし。
書くときに想定する読み手が全くの他人のときと未来の自分のときではちょっと違う意識があるな。
名前の付け方とかは何度考えても同じような状況なら同じ名前を付けるし。
書くときに想定する読み手が全くの他人のときと未来の自分のときではちょっと違う意識があるな。
2023/01/25(水) 18:36:03.64ID:V9gmFqbx
一度も使ったことがない機能は書くことはできても読めると思うな、が基本
使ってから読め
使ってから読め
2023/01/25(水) 19:53:08.97ID:sck5kayB
>>47
ネットワークこそ途中で途切れること前提に書かないといけない機能の最たるものだろ。エラー返してハンドリングしろ。
ネットワークこそ途中で途切れること前提に書かないといけない機能の最たるものだろ。エラー返してハンドリングしろ。
54デフォルトの名無しさん
2023/01/25(水) 20:37:11.28ID:5EKz9Dxo >>48
あるあるだね
あるあるだね
55デフォルトの名無しさん
2023/01/25(水) 20:38:19.94ID:xtWPaGBn >>47
なんでpanicになるの?
なんでpanicになるの?
2023/01/25(水) 21:43:02.36ID:jK9fbSTx
2023/01/25(水) 23:55:49.39ID:7h2BZmgN
bool以外でも&&と||の遅延評価が使えるようになるわけか
欲しいね
欲しいね
2023/01/26(木) 00:47:59.28ID:Oik+f0Gv
bool以外でもifを使えるといえばif letで
elseを省略することで3項ではなく2項演算のようになるのも&&と同じ
だがelseを省略できても{}を省略できなければ意味がない
elseを省略することで3項ではなく2項演算のようになるのも&&と同じ
だがelseを省略できても{}を省略できなければ意味がない
59デフォルトの名無しさん
2023/01/26(木) 11:05:43.50ID:G0iCERKY >>58
もうちょっと基礎を勉強してからレスしろ
もうちょっと基礎を勉強してからレスしろ
60デフォルトの名無しさん
2023/01/26(木) 11:09:10.89ID:QY5r5/0E すまんが、これの解答はmutをつけろっていうことなのはわかるけどさ
https://github.com/rust-lang/rustlings/blob/main/exercises/variables/variables4.rs
なんで8行目で所有権を失って9行目で代入できなくなったりしないの・・・・?
https://github.com/rust-lang/rustlings/blob/main/exercises/variables/variables4.rs
なんで8行目で所有権を失って9行目で代入できなくなったりしないの・・・・?
61デフォルトの名無しさん
2023/01/26(木) 11:24:13.84ID:DDvWU5a2 >>60
これはもっともな疑問
The Bookのどこかに書いてたように思うけど
ざっくり言えばprintlnはreferenceを取るから所有権は移動しない
DisplayトレイトやDebugトレイトのメソッドシグニチャを見ると分かる
これはもっともな疑問
The Bookのどこかに書いてたように思うけど
ざっくり言えばprintlnはreferenceを取るから所有権は移動しない
DisplayトレイトやDebugトレイトのメソッドシグニチャを見ると分かる
2023/01/26(木) 11:33:53.75ID:Y60o/Mze
2023/01/26(木) 14:03:27.91ID:YuUaXpq9
ある関数の&mut T型の引数として、T型の変数を貸すのは分かるけど
&mut T型の変数を又貸しするのが不思議
なぜmoveしたことにならないのか
&mut T型の変数を又貸しするのが不思議
なぜmoveしたことにならないのか
2023/01/26(木) 15:25:17.84ID:MCrVnhV0
>>63
&TはCopyだからmoveしないよ
&TはCopyだからmoveしないよ
65デフォルトの名無しさん
2023/01/26(木) 15:35:28.34ID:SkvAt80a2023/01/26(木) 17:21:49.46ID:YuUaXpq9
implicitly reborrowedされるとhogeが&mut *hogeになるのか
勉強になった
ありがとう
勉強になった
ありがとう
2023/01/26(木) 18:45:49.05ID:nglgEIPC
結局&mutを持っている間は専有しているから既存ルールに抵触することなく貸し出し自由自在という理解でいいのかな
&*でimmutableなreborrowも出来ちゃうもんね
&*でimmutableなreborrowも出来ちゃうもんね
2023/01/26(木) 19:48:43.33ID:16g2h/GU
>>60
変数が値を所有しているんだよ
値がムーブされて一度無効化された変数にも新しい値を所有させられるよ
例えば、その9行目でxが3を所有していなかったとしても新しい値を入れられるよ
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=657d792c80f30e9430f0fbff11556fe6
変数が値を所有しているんだよ
値がムーブされて一度無効化された変数にも新しい値を所有させられるよ
例えば、その9行目でxが3を所有していなかったとしても新しい値を入れられるよ
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=657d792c80f30e9430f0fbff11556fe6
2023/01/26(木) 19:50:53.34ID:uBPDOaY+
暗黙で参照が外されることがあるからわかりにくいんだろうな
最初から暗黙の参照外しがなければよかったと思うが
後方互換性を大事にするなら、もう改善は不可能だな
最初から暗黙の参照外しがなければよかったと思うが
後方互換性を大事にするなら、もう改善は不可能だな
2023/01/26(木) 20:31:02.62ID:q1WzF/2m
>>53
だからバグじゃないよね?
だからバグじゃないよね?
71デフォルトの名無しさん
2023/01/26(木) 21:11:51.00ID:BacNCpeu >>70
エラーを返すんだからpanicしないだろ
エラーを返すんだからpanicしないだろ
72デフォルトの名無しさん
2023/01/26(木) 21:14:28.71ID:GObOayQz >>68
そりゃmutならなw
そりゃmutならなw
73デフォルトの名無しさん
2023/01/26(木) 21:18:17.56ID:q8T2WGhT implicit reborrowはThe Bookには書かれないし直感的でもないから動きが理解しにくいというのはよく分かる
2023/01/26(木) 21:50:47.31ID:ZxPs9rBQ
>>70
例えばtwitterアプリを地下鉄とか通信できない状況で起動して panic で落ちる事を考えてみろ。そりゃバグだろ。
例えばtwitterアプリを地下鉄とか通信できない状況で起動して panic で落ちる事を考えてみろ。そりゃバグだろ。
2023/01/26(木) 22:06:21.53ID:HEA6MC1t
Deref無しは流石にきついな
一気にRust書きたくなくなる気がする
一気にRust書きたくなくなる気がする
2023/01/26(木) 22:20:38.36ID:nglgEIPC
7760
2023/01/27(金) 11:24:22.85ID:CSClNfzp 教えてくれてるのは本当にありがたいんですが、訳がわかんないぽ・・・・
78デフォルトの名無しさん
2023/01/27(金) 11:51:57.32ID:YDsF+xqw >>77
何がわからないのか書いて
何がわからないのか書いて
7960
2023/01/27(金) 13:58:30.55ID:CSClNfzp マクロが展開するコードがあって、そこに&がついてるってことなんですか?
2023/01/27(金) 14:00:09.55ID:MqPTrKVr
せやで
Playgroundの左上のボタンでShow HIRするとマクロ展開等終わった後のコード出るから見てみ
Playgroundの左上のボタンでShow HIRするとマクロ展開等終わった後のコード出るから見てみ
2023/01/27(金) 19:13:43.59ID:q2LYouLt
&はついてるけどあなたの疑問とは関係ないと思う
2023/01/27(金) 21:29:03.39ID:N1uoRX56
>>74
例がtwitterアプリって...通信が出来ない状態でも何らかのオフライン操作が行えるアプリであればそうでしょうが
仕様上、エラーハンドリングを行わなければならないとされていないならバグではないでしょ....
むしろ大したログやコンソールでの情報も出さず、「エラー:通信ができましぇん」なんて返されるほうが迷惑だわ
例がtwitterアプリって...通信が出来ない状態でも何らかのオフライン操作が行えるアプリであればそうでしょうが
仕様上、エラーハンドリングを行わなければならないとされていないならバグではないでしょ....
むしろ大したログやコンソールでの情報も出さず、「エラー:通信ができましぇん」なんて返されるほうが迷惑だわ
2023/01/27(金) 21:54:30.76ID:cQ0vJjwr
84はちみつ餃子 ◆8X2XSCHEME
2023/01/28(土) 02:45:04.16ID:OM0pptP0 >>82
Rust の文化にあまり詳しいわけじゃないけど panic を呼び出すのって C/C++ で言うところの assert 的なもんでしょ。
普通に考えたら panic が呼ばれるのはモジュールの仕様に対して使い方が間違っているかリカバリ不可能な場合。
逆に言えば使い方が正しくてリカバリ可能な状況で panic になるべきではない。
モジュールの使い方が完璧に正しいプログラムを書いても panic が引き起こされてしまうなら panic の使い方のほうが間違ってる。
絶対に通信が確立する状況で使えという仕様を設定すりゃあ間違ってるのは使い方のほうではあるけどさー、
ネットワークでそれは不可能な前提じゃん? ありえない前提を元にするのは不毛だろ。
Rust の文化にあまり詳しいわけじゃないけど panic を呼び出すのって C/C++ で言うところの assert 的なもんでしょ。
普通に考えたら panic が呼ばれるのはモジュールの仕様に対して使い方が間違っているかリカバリ不可能な場合。
逆に言えば使い方が正しくてリカバリ可能な状況で panic になるべきではない。
モジュールの使い方が完璧に正しいプログラムを書いても panic が引き起こされてしまうなら panic の使い方のほうが間違ってる。
絶対に通信が確立する状況で使えという仕様を設定すりゃあ間違ってるのは使い方のほうではあるけどさー、
ネットワークでそれは不可能な前提じゃん? ありえない前提を元にするのは不毛だろ。
2023/01/28(土) 07:46:19.92ID:NqcfPhRT
2023/01/28(土) 09:58:07.00ID:40nYh31B
ユーザーにとって不自然な動作をすれば開発者が仕様だと言い張ったところでそれはバグだよ
2023/01/28(土) 10:54:36.16ID:9JWZ6Tol
エラーにも回復可能なエラーと不可能なエラーがあり、panicすると回復不可能な状態になるんだから、回復可能なエラーはpanicすべきじゃない。ましてや通常使用でしばしば発生する状態でpanicするのは言語道断だわな。
2023/01/28(土) 10:57:15.78ID:A5TUrW0u
assertというかexitやな。推奨はされん、普通はデバッグで面倒な時くらいじゃないか。
2023/01/28(土) 11:52:23.17ID:NqcfPhRT
>>86
MSの開発者を説得してくれ
MSの開発者を説得してくれ
2023/01/28(土) 11:54:06.56ID:NqcfPhRT
>>88
exitは正常終了でも呼ばれるからassertのほうが意味的には近いと思うぞ
exitは正常終了でも呼ばれるからassertのほうが意味的には近いと思うぞ
2023/01/28(土) 14:06:35.25ID:qTYDIi6E
マルチスレッド界隈ではスレッドの一つや二つ終了しても
回復不可能と思ってないでしょ
回復不可能と思ってないでしょ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「今川焼」か「大判焼き」か、それとも…? ついに決着! 47都道府県“呼び方勢力図” [七波羅探題★]
- 【サッカー】天皇杯決勝で空席目立つ 観衆3万1414人…宮本会長「背景は深掘りする必要がある」 [jinjin★]
- 植田日銀総裁 「利上げが遅れれば、米欧のように非常に高いインフレが起きて、日本は大幅な利上げが必要となる」 ★4 [お断り★]
- 【芸能】紅白出場のaespaメンバーが「原爆のきのこ雲をイメージしたランプ」投稿 NHKが参院総会で「揶揄の意図ない」と答弁 [冬月記者★]
- 中国クルーズ船、日本への航海中止 日中関係悪化が影響か ★2 [蚤の市★]
- 水深2mのホテルプールで大学生溺死、監視員なし 8千万円賠償命令 ★2 [蚤の市★]
- 【高市悲報】辛抱、流行語大賞の裏側を暴露「ノミネート時点で出席するなら賞をあげるという取引してる」😲 [359965264]
- 日本でBYDとか中国の車運転してたらネトウヨにイタズラされそうじゃない?怖くて買えないんだけど [383063292]
- 【高市朗報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- ビタミンCのCってSea(海)って意味なんだよな
- 【高市悲報】高橋洋一「中国さん、また高市の罠にかかったな😤台湾や満州は日本のものでいいのですね」😨 [359965264]
- 【悲報】日本政府さん、G7議長国フランスに「中国だけはG7に呼ばないで」と懇願していることをばらされるwwww [271912485]
