[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
132
(1): デフォルトの名無しさん [sage] 2024/06/14(金) 19:04:14.04 ID:1kqNSQLr(1/2) AAS
ネットワーク対戦ゲームだと細工したパケット送ると
バッファーオーバーフローで云々とよくある
脆弱性になるじゃん
172
(1): デフォルトの名無しさん [sage] 2024/06/16(日) 00:50:00.04 ID:+a7ueRP7(1) AAS
>>169
169(2): デフォルトの名無しさん [sage] 2024/06/15(土) 23:22:17.89 ID:uRWofhsS(11/11) AAS
逆のものを想像してんだけどな
スタックでなくヒープにあっても同じなのがRustじゃないの?
スタック上への参照とヒープ上への参照をRustでは区別しない
ライフタイムさえ満たしていればどこを指していても区別なく参照を扱う
そのため、従来行われてきた「安全にヒープ上でに領域を確保してヒープ上への参照を返す」をしなくても
ライフタイムさえ満たしていればスタック上への参照を安全に渡したり返したり自由にできるようになった
そのため、従来はヒープ上に確保していていたケースがRustではスタック上に置くことができるようになり、その点でも高速化に寄与している
266: デフォルトの名無しさん [sage] 2024/06/20(木) 00:27:34.04 ID:AP0fcOd2(1) AAS
>>265
265(2): デフォルトの名無しさん [sage] 2024/06/19(水) 23:58:52.30 ID:sOHW1UBs(1) AAS
>>258
奇数個が来た時のエラー処理を考えると
Result<(名前, データ), 残り>を返すイテレーターが適切

>>264
tuples()は奇数個エラーに気付けないのが惜しい
奇数個はエラーってのはタプルの要素数2個の場合限定なので
もう少し一般化して使える方法がいいと思うよ
itertoolsはchunksとか他にも使えるやつがあるから用途に応じて使い分けてね
370: デフォルトの名無しさん [] 2024/06/25(火) 22:48:01.04 ID:3rDdWdgz(1) AAS
Erlang使ってて良かったと思った
451: デフォルトの名無しさん [] 2024/06/28(金) 20:36:15.04 ID:v8X9ZSBd(3/3) AAS
んー…。
おっさん的には関数単位でテスト出来るかどうかが問題であって、プロトタイプは動的か静的かの問題じゃない気がするな。

最近は静的型言語でもインタラクティブシェル(略語忘れた)のインタプリタで関数単位でプロトタイプ作ってテストして、上手くいけばビルドって流れだし。

そういうのが無い言語は今でもプロトタイプは動的言語で作って…ないわw

場合によるな。
すでに作り方を知ってたらいきなり静的型言語で書くし、何か思いついたけど確信が持てない。みたいな時(試行錯誤が予想される)は動的型言語でプロトタイプ書いてるかな。
(静的型言語にインタラクティブシェルが無い時)
538
(1): デフォルトの名無しさん [sage] 2024/07/01(月) 14:22:14.04 ID:seu0xN2c(1/2) AAS
Resultを返すか返さないか関係なくこれは常に成り立つね

>>534
534(3): デフォルトの名無しさん [sage] 2024/07/01(月) 12:59:53.25 ID:irzLgX5l(1) AAS
>>525
こう書くとresultがErrの時に返せずここでpanicになってしまう

 let val = result.unwrap();
 f(val)

そのためpanicしてもいいとか絶対にErrとならない特殊な場合を除けば
unwrapを用いてはダメでmapを使ってこのように書くんだよ

 result.map(|val| f(val))

ここで本当に関数fを呼ぶだけならresult.map(f)と簡略化できるけど
f(val)の部分は式やブロックの可能性もあるので簡略化せずに進めるね

これは以下と同等でErr(err)の時に保持してくれている

 match result {
  Ok(val) => Ok(f(val)),
  Err(err) => Err(err),
 }

ちなみにf(val)もResultを返すときは
mapの代わりにand_thenがある

 result.and_then(|val| f(val))

つまり以下の二つは同等

 result.map(|val| f(val))
 result.and_then(|val| Ok(f(val)))

この場合はもちろん簡素なmapを用いるべき
> 以下の二つは同等
> result.map(|val| f(val))
> result.and_then(|val| Ok(f(val)))

例えばf(val)がOptionを返したとしても成立するよ
548: デフォルトの名無しさん [sage] 2024/07/01(月) 15:56:35.04 ID:iVgAAf6K(1) AAS
rustもprint時のstring interpolationはもう少しどうにかならんものかね
606: デフォルトの名無しさん [] 2024/07/07(日) 08:48:31.04 ID:5sr/rOi5(1) AAS
>>603
603(1): デフォルトの名無しさん [] 2024/07/06(土) 22:35:00.58 ID:KApGuCzH(1) AAS
Rust触ってないから分らんけど、QtのRustラッパーライブラリは無いのん?
一応Android/iOS含めたソースコードレベルでのマルチプラットフォームライブラリに進化しているらしいが、Haskellにすらラッパーライブラリあるんなら、Rustにも探せばあるんじゃ?
ないわけじゃないけどまともに使えるレベルではないらしい。使ってないから知らんけど。
Qt自体QMLとか迷走してる感じあるし結局JSでやるならもうReact使えばいいんじゃね?感ある
729
(2): デフォルトの名無しさん [sage] 2024/07/10(水) 18:28:13.04 ID:/bwWoePd(1) AAS
>>728
728(1): デフォルトの名無しさん [sage] 2024/07/10(水) 16:42:16.40 ID:aw6hROvm(1) AAS
>>712
>例外で値をキャッチできなくなることや値を返す抜け道になることを防ぐためだ
違うよ
勝手な想像でLSPを誤解釈しないで

substituteされる型Tに対して定義された仕様上(契約上)の振る舞いを
substituteする型Sが満たしてなければLSP違反
つまり仕様上panicを禁止したトレイトの関数を
panicする関数でimplしたらLSP違反

LSPではあくまで”仕様上定義された振る舞い”が問題
panicを禁止という概念も方法もなく不可能だよ
何をしたいの?
744
(1): デフォルトの名無しさん [sage] 2024/07/11(木) 03:34:06.04 ID:huEwUyFV(1) AAS
それはたぶんDじゃなくてIかな……
746: デフォルトの名無しさん [sage] 2024/07/11(木) 11:33:08.04 ID:gcQpVY2c(1/2) AAS
>>744
DもIも両方関係あるよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.050s