Rust part33

レス数が950を超えています。1000を超えると書き込みができなくなります。
930デフォルトの名無しさん
垢版 |
2025/11/25(火) 14:36:29.79ID:oKjFi/bF
fmt::Debug実装されてないとき
Compile errorで落とすのをデフォに出来ないの
2025/11/25(火) 14:43:06.35ID:F0vSFTML
>>877
pythonのモジュール設計はtcl/tkのパクリ
932デフォルトの名無しさん
垢版 |
2025/11/25(火) 15:49:19.46ID:I2i5SPtI
>>910
だね。
例えば、UartDriverのインスタンスを関数外にグローバル変数(static)として設け、各関数でシェアする場合、
OnceLock<Mutex>などで排他する必要がある。
これをnew()内でmutex setしようとするとそのset関数にはunwrapも.exceptも使えない。
そこで、sft::fmt::DEBUGインプリメント推奨となる。
933デフォルトの名無しさん
垢版 |
2025/11/25(火) 16:57:37.23ID:I2i5SPtI
>>930
一応要求される使い方では、COMPILE ERRORでニッチもサッチも行かなくなる。
unwrap()系必須の仕様は多い。
934デフォルトの名無しさん
垢版 |
2025/11/25(火) 18:06:26.30ID:gKa7Wtm4
refcellとかの内部可変性はズルいような感じする
2025/11/25(火) 18:07:51.70ID:Uzx8myAA
unwrap禁止おじさんw
936デフォルトの名無しさん
垢版 |
2025/11/25(火) 18:29:54.26ID:I2i5SPtI
まぁ クレートのラッパーにstd::fmt:DEBUG入れ込むのは、VScode AIコパイロットで一度パターンを覚えてくれれば、楽になるが、あちきのようなvim使いにはテンプレートでやるしかない。
意外と手間がかかるのでマンドクサイ。
2025/11/25(火) 18:43:51.50ID:tWNvtr7E
>>928
ベストなわけあるか
握りつぶすのが最悪でその次に悪い対応
2025/11/25(火) 18:50:48.51ID:tWNvtr7E
>>927
わざわざデフォルト値にフォールバックする必要がないと思う
まさに今使ってる設定があるんだからそれを使い続ければいい
動作も変わらなず設定が無効な値に更新されないだけ
939デフォルトの名無しさん
垢版 |
2025/11/25(火) 19:15:28.03ID:twyqgfyl
まあRustだから安全ですよ
そんなに心配していません
2025/11/26(水) 01:42:28.68ID:fYRqTg9o
panic panic panic みんなが慌ててる
Rustは凄いぞ 天才的だぞ 将来楽しみだ
2025/11/26(水) 02:55:05.14ID:I5iq7Xze
認証せえ~!!
2025/11/26(水) 07:57:42.58ID:lveofIN6
>>930
https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#missing-debug-implementations

デフォルトだとallowになってるからdenyにしておくといい
lintルールは暇なときに眺めてみると勉強になるかもしれない
943デフォルトの名無しさん
垢版 |
2025/11/26(水) 08:33:59.66ID:mGmJoQ1I
>>934
まぁ ファームウェア系などの、スマートポインタ多用の開発では必須なんだわ。
それなら、CやC++でやれば良いのにとは思うが、Rust信者はどうしようもない。
はやくC++開発に戻りたい。
2025/11/26(水) 09:47:04.35ID:Pac8bZoE
>>937
上位でエラーハンドリングしなければいけないという事実をunwrapで隠蔽してるのでこれもある種の握りつぶし
2025/11/26(水) 11:03:01.70ID:0yU1UOYB
safe panicで安心安全
2025/11/26(水) 11:25:19.54ID:g4n+mUAP
>>904
[derive(Debug)]
じゃだめなん?
2025/11/26(水) 11:28:14.69ID:g4n+mUAP
unwrapの何が悪いって言うと
コンパイル通って実行も出来てうまく処理したつもりになってるアマグラマーを量産してることだな
2025/11/26(水) 11:46:54.66ID:ZGYu6bhA
>>946
まず「新しい型を定義する」ということをやらないといけないだろ。
元の型で取り出すのをいちいち明示するのもわずらわしいから Deref も実装したほうが良いかもしれない。
そのあたりも込みでの話。
Debug 自体をどう実装するか以前の部分で自動化したいってこと。
949デフォルトの名無しさん
垢版 |
2025/11/26(水) 12:10:39.11ID:g4n+mUAP
proc_macro2で割と簡単に出来た気がするが
950デフォルトの名無しさん
垢版 |
2025/11/26(水) 13:51:04.55ID:85nVzqH7
|&x| ってやるとxが参照じゃなくなるんだけどなんで?
2025/11/26(水) 13:56:50.66ID:ZGYu6bhA
>>950
Rust の引数はパターンマッチのメカニズムをそのまま適用しているから。
参照を &x の形で受けると参照でない部分が x として取り出される。
952デフォルトの名無しさん
垢版 |
2025/11/26(水) 14:40:21.92ID:85nVzqH7
&はコンストラクターだったってことか
2025/11/26(水) 15:29:16.94ID:2vze7JyK
え?
レスを投稿する

レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況