Rust part33 (229レス)
Rust part33 http://mevius.5ch.net/test/read.cgi/tech/1755247770/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
66: デフォルトの名無しさん [sage] 2025/08/24(日) 17:03:59.99 ID:apxru5vn >>55 それは文法としてnamed tupleをサポートしてないからだよ サポートしてれば下のように書ける def foo() -> (x: int, y: int): return (x: 10, y: 20) p = foo() print(p.x, p.y) x, y = foo() print(x, y) http://mevius.5ch.net/test/read.cgi/tech/1755247770/66
67: デフォルトの名無しさん [sage] 2025/08/24(日) 17:15:02.39 ID:7zDT8kXu 事実と意見を区別しろ 前提を明確に示せ 異なる前提に依存する結論を無理に適用するな http://mevius.5ch.net/test/read.cgi/tech/1755247770/67
68: デフォルトの名無しさん [sage] 2025/08/24(日) 17:48:30.01 ID:+zGYyK0c >>66 これで済む話 let (x, y) = foo(); http://mevius.5ch.net/test/read.cgi/tech/1755247770/68
69: デフォルトの名無しさん [sage] 2025/08/24(日) 18:53:52.96 ID:xPc+Pkry >>66 筋がよくなく中途半端に感じる その型を他でも用いるならば型に名前を付けて宣言したほうがよく その場限りならば>>68 http://mevius.5ch.net/test/read.cgi/tech/1755247770/69
70: デフォルトの名無しさん [sage] 2025/08/24(日) 19:23:45.82 ID:o5OQy7cK let (manko, chinko) = foo(); // 本当のfoo()の返す中身は(chinko, manko) が許されるから、それって嫌だよねって話じゃないの? http://mevius.5ch.net/test/read.cgi/tech/1755247770/70
71: デフォルトの名無しさん [sage] 2025/08/24(日) 19:32:58.00 ID:lcXQ4DrV >>70 そうそう AIに生成させるにしても、fooが別のパッケージだったりするとシグネチャだけで要素の意味を推測できないのは辛いわな http://mevius.5ch.net/test/read.cgi/tech/1755247770/71
72: デフォルトの名無しさん [sage] 2025/08/24(日) 19:44:34.69 ID:PRkNyipX 別なら構造体を定義しろ http://mevius.5ch.net/test/read.cgi/tech/1755247770/72
73: デフォルトの名無しさん [sage] 2025/08/24(日) 22:32:48.16 ID:O8wAGFa3 >>68 どっちかというと真逆でRustの場合は1mmでも名前でアクセスしたいと感じるものは構造体を定義しないといけない >>69 中途半端に感じるのは当然 事前に構造体を定義しておくほどではないが要素には名前でアクセスしたいというものすごく中途半端な状況にこそ求められる機能だから http://mevius.5ch.net/test/read.cgi/tech/1755247770/73
74: デフォルトの名無しさん [sage] 2025/08/25(月) 06:47:36.11 ID:E2rxLwdP >>59 >>60 それらは古典的プログラミングだから無関係な処理が間に挟まったり流れが乱されるため可読性が落ちる Rustでは抽象化したプログラミングによりメソッドチェーンで繋ぐことが多い チェーンの間はタプルのまま旅を続けたとしても一つの流れなので可読性は落ちない チェーンの途中もしくは最後のforやfold系でパターンマッチングされてタプルが解消されればよい http://mevius.5ch.net/test/read.cgi/tech/1755247770/74
75: デフォルトの名無しさん [sage] 2025/08/25(月) 08:15:32.90 ID:foAG4KWU 多値戻しは_をサポートしてなければコーダーにとってはどうでもいい話じゃないんかね。 最適化機会を明示できるかどうかくらいじゃね? http://mevius.5ch.net/test/read.cgi/tech/1755247770/75
76: デフォルトの名無しさん [sage] 2025/08/25(月) 10:18:01.04 ID:hSk6qQ9G ながめてるとたしかに_多いな >fn f(init: &str, n: usize) -> String { > let mut list = init.chars().rev().collect::<Vec<_>>(); > for _ in 1..n { > if let Some((pre_index, (_, old))) = list.iter().tuple_windows().enumerate().find(|(_, (pre, cur))| pre > cur) { > let old_index = pre_index + 1; > let (new_index, _) = list.iter().enumerate().find(|(_, cur)| cur > &old).unwrap(); > list.swap(old_index, new_index); > list[..old_index].reverse(); > } > } > list.into_iter().rev().collect() >} http://mevius.5ch.net/test/read.cgi/tech/1755247770/76
77: デフォルトの名無しさん [sage] 2025/08/25(月) 12:25:47.76 ID:lo8Kz+ZF タプルの片方は途中不要で最後に必要だが、もう片方はその逆とかよくあるある。 後者のfind()はposition()に置き換えられるが、二つのfindが対称形の処理ぽいのでそのままでもいいか。 http://mevius.5ch.net/test/read.cgi/tech/1755247770/77
78: デフォルトの名無しさん [sage] 2025/08/25(月) 15:50:58.87 ID:4Ejmg1ls まだ多値の話してる・・・ http://mevius.5ch.net/test/read.cgi/tech/1755247770/78
79: デフォルトの名無しさん [sage] 2025/08/25(月) 16:13:59.05 ID:M76UE5qm このスレはあくまで複おじのファンスレッドだから 複おじの興味が続けばその話題が続くんだよ http://mevius.5ch.net/test/read.cgi/tech/1755247770/79
80: デフォルトの名無しさん [sage] 2025/08/25(月) 21:09:46.97 ID:KzDmCwhz ファンじゃなくて自演スレだから http://mevius.5ch.net/test/read.cgi/tech/1755247770/80
81: デフォルトの名無しさん [sage] 2025/08/27(水) 18:45:58.51 ID:s/5KNF71 タプルといえばzipとmultizipの方針の違いでVec指定の与え方が微妙差 let (counts, chars) = str.chars().sorted().dedup_with_count().unzip::<_, _, Vec<_>, Vec<_>>(); let (counts, chars) = str.chars().sorted().dedup_with_count().multiunzip::<(Vec<_>, Vec<_>)>(); http://mevius.5ch.net/test/read.cgi/tech/1755247770/81
82: デフォルトの名無しさん [sage] 2025/08/28(木) 10:55:22.21 ID:OS0cfYx9 抽象なんて「見たいものだけを見る」という程度の意味だからね もしメモリ管理が最大の関心事なら 抽象度が最も高いIUnknownにリファレンスカウント機能をつけていい http://mevius.5ch.net/test/read.cgi/tech/1755247770/82
83: デフォルトの名無しさん [sage] 2025/08/28(木) 11:58:26.45 ID:1IatnfJ+ >>81 左辺に型を書けばいいんだよ そのほうが読みやすいしタイプ数も少ない あとunzip/multiunzipはcollectでも代用可 http://mevius.5ch.net/test/read.cgi/tech/1755247770/83
84: デフォルトの名無しさん [sage] 2025/08/28(木) 15:40:44.35 ID:OS0cfYx9 なんで掛け算の引数には名前がないんだろう 順序を逆にできない理由が一目でわかるような名前があるなら名前をつけるべき http://mevius.5ch.net/test/read.cgi/tech/1755247770/84
85: デフォルトの名無しさん [sage] 2025/08/28(木) 20:43:02.31 ID:fdP0HyCm >>81 unzipはトレイトを使っていないため余分なパラメタが露出してしまってる multiunzipはトレイトMultiUnzipを collectはトレイトFromIteratorを使っている >>83 今年のRust 1.85からタプルもcollectできるようになったね http://mevius.5ch.net/test/read.cgi/tech/1755247770/85
86: デフォルトの名無しさん [sage] 2025/08/30(土) 05:57:20.14 ID:JBC8dN2M a * b * c は b や c のすぐ隣に目印があるからキーワード引数は不要だ mul(a, b, c) (* a b c) このような記法だけが、b c 付近で文法的サポートが不足している問題を抱えている http://mevius.5ch.net/test/read.cgi/tech/1755247770/86
87: デフォルトの名無しさん [sage] 2025/08/30(土) 23:22:46.71 ID:6bFj+97W >>55 namedtupleは廃れて今はdataclassを使う Rustでの#[derive(Debug, Hash, Ord)]付き構造体相当 結局Pythonでもそのへんはちゃんとしてほしいことになった http://mevius.5ch.net/test/read.cgi/tech/1755247770/87
88: デフォルトの名無しさん [sage] 2025/08/31(日) 09:51:10.58 ID:cF2U6lLu ハッシュ関数を使えば保守的GCが廃れる 確率を見たらカオスと思え http://mevius.5ch.net/test/read.cgi/tech/1755247770/88
89: デフォルトの名無しさん [sage] 2025/08/31(日) 10:00:25.50 ID:mJd+1ya1 >結局Pythonでもそのへんはちゃんとしてほしいことになった 誰か日本語に翻訳して http://mevius.5ch.net/test/read.cgi/tech/1755247770/89
90: デフォルトの名無しさん [sage] 2025/08/31(日) 10:52:20.39 ID:QUPYnWaR 足りない頭で必死に調べた複おじの努力を認めて差し上げろ それはともかく、一般にスクリプト言語ではタプルはあまり好まれず、辞書が好まれる傾向がある - ユーザーが辞書データ構造を使ってレコードを扱うことに慣れている - 辞書を扱うための簡便な構文が存在する場合が多い - 辞書と配列の速度やメモリ使用量の差が問題にならない - 値が増えた場合にランタイムエラーを引き起こす なお、dataclassは辞書に対する型付きのラッパーに過ぎない あくまでこれはスクリプト言語の事情であり、Rustのような静的言語においてはレコードはタプル(構造体は名前付きのタプルの一種)として実装することが基本であることに注意しなければならない http://mevius.5ch.net/test/read.cgi/tech/1755247770/90
91: デフォルトの名無しさん [sage] 2025/08/31(日) 17:32:35.66 ID:qrCON/OK 辞書かどうかは本質ではない 辞書として用いないことが圧倒的に多いため例えばV8では静的解析で判明するプロパティを構造体フィールドのように扱い実行するため辞書実装とは異なり速い http://mevius.5ch.net/test/read.cgi/tech/1755247770/91
92: デフォルトの名無しさん [sage] 2025/08/31(日) 18:15:49.65 ID:IkR/a1qs また的外れなレスだなぁ 結局複おじにもそのへんはちゃんとしてほしいことになった http://mevius.5ch.net/test/read.cgi/tech/1755247770/92
93: デフォルトの名無しさん [sage] 2025/08/31(日) 18:20:32.10 ID:yY4/9rZW >>91 V8のプロパティアクセスの最適化は基本的には静的解析に依存しないよ 同じプロパティが同じ順序で追加されたオブジェクトは同じ型と見做してキャッシュされたプロパティの位置を利用する あくまで辞書データ構造を前提としたままでキャッシュ戦略を工夫しているに過ぎない http://mevius.5ch.net/test/read.cgi/tech/1755247770/93
94: デフォルトの名無しさん [sage] 2025/08/31(日) 23:19:02.35 ID:cF2U6lLu 魔法の数字ではなく ちゃんとenumを使うことになった http://mevius.5ch.net/test/read.cgi/tech/1755247770/94
95: デフォルトの名無しさん [sage] 2025/08/31(日) 23:24:15.68 ID:Dds/cnqW Minimal Embedded FAT32 Driver - in Rust! https://www.youtube.com/watch?v=VcWXn8B9RoE http://mevius.5ch.net/test/read.cgi/tech/1755247770/95
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 134 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s