Rust part28

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2025/03/24(月) 17:37:00.15ID:NJwebgj2
公式
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 part27
https://mevius.5ch.net/test/read.cgi/tech/1733146370/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/04/05(土) 11:17:04.10ID:in25MGhG
可能なら英語の原文を読む方がいいのは間違いない
bound⇔制約みたいな謎対訳を意識しなくて済む
洋書は高いけどね
2025/04/05(土) 11:17:57.15ID:r2N1m9n9
>>301
わかりやすいリトマス試験紙だよね
2025/04/05(土) 11:19:18.81ID:/EY1L6NJ
>>301
境界はどうでもいいが
trait boundsの日本語訳をトレイト制約としてしまうとRust公式リファレンスのあちこちで困ったことになることが今回のこのスレでの調査で判明した
少なくともトレイト制約と訳してはいけないことが明白になった
2025/04/05(土) 11:58:20.02ID:fzOXtcwa
たとえばcobolをjavaに直訳できない問題って

新しい要素を追加した方に原因があるのか?
306デフォルトの名無しさん
垢版 |
2025/04/05(土) 13:46:49.67ID:Ur9Vw4Z1
>>291
ほんそれ

>>292
and にしたいなら TraitA & TraitB だろ常考
&'a TraitB と区別付かなくなるから避けたとかいうのは無しな
2025/04/05(土) 13:48:18.46ID:Ur9Vw4Z1
>>294 == >>292
id変えて御苦労さん
2025/04/05(土) 14:22:39.14ID:fzOXtcwa
>>291
子供医者は一部の患者にとっては敵である??

馬鹿みたいな思想だないつも
2025/04/05(土) 14:29:32.69ID:7yyM+PYz
>>307
日付変わったらid変わるんだよ…馬鹿なのかなあ?
2025/04/05(土) 14:30:52.53ID:7yyM+PYz
と思ったけど同じ日だな
5chがおかしいんだろ
2025/04/05(土) 21:54:28.18ID:kbjS/M49
>>302
洋書のほうが断然安いだろ
2025/04/05(土) 22:12:55.39ID:+mdv7JT9
ものによるよ
具体的に比較せねば
2025/04/05(土) 22:23:17.94ID:JwBnCnrW
日本で洋書を買うなら輸入品だもの。
円安の情勢で高くなるのは仕方ないよ。
314デフォルトの名無しさん
垢版 |
2025/04/05(土) 22:38:25.51ID:gU7LWJwv
TraitやTrait boundsが制約だと思ったんだろな
特性や特性の範囲を示しているだけで
必ずしも制限に使われると限らないのだが
2025/04/05(土) 22:41:49.78ID:+mdv7JT9
オライリーならサブスクで洋書PDF読み放題があったような
316デフォルトの名無しさん
垢版 |
2025/04/05(土) 22:54:56.00ID:UT8OnkGd
Lifetime boundは?
2025/04/05(土) 23:36:18.07ID:yh9xzdzz
>>284
>>let x: &dyn TraitAB = &t1;

その合成したトレイト境界によるトレイトオブジェクトを、
一昨日リリースのRust 1.86からこのようにスーパートレイトへアップキャストできるようになったという理解でいいんだよな。
let xa: &dyn TraitA = x;
let xb: &dyn TraitB = x;

結局この+によるトレイト境界の合成も、制約したと考えるより、両方の特性(機能)を持たせたと考える方が理に適ってるよな

>>// トレイト境界の合成
>>trait TraitAB: TraitA + TraitB {}
2025/04/06(日) 01:02:23.74ID:upKL4j/Q
境界の合成ならorでしょう?なんでandになるんだよ
2025/04/06(日) 01:05:52.29ID:1+4HzuoN
その特性を持つか持たないか
両方の特性を持つようになるから'+'がふさわしい
2025/04/06(日) 01:12:53.80ID:upKL4j/Q
質問
トレイト境界と言う言葉があまりしっくりきません

chapGPTの答え

「トレイト境界(trait bound)」っていう言葉、ちょっとピンとこないというのは自然な感覚です。
むしろ「型に課す条件」とか「型パラメータの制約」というようなイメージの方が、Rustの使い方としてもしっくりくるかもしれませんね。


「trait bound」という言葉は英語の「bound(拘束、制約、限界)」の訳で、おそらく「型に制約を課す」という意味から来ています。
ただ、日本語で「境界」というと、物理的な境目やある範囲をイメージしやすく、それが逆にわかりづらくしているかもしれません。

しっくりくる言い換え候補いくつか
表現 ニュアンス

トレイト条件 Tに必要な条件、論理的に「T ∈ Debugを満たす型の集合」

トレイト制約 Tにかかる制限。構文的にも意味的にも合ってる

トレイト必須要件 必須で満たさなければならない要件

実装条件 implが意味する「Tは〜を実装していないといけない」

実装制限 実装可能な範囲を制限する
2025/04/06(日) 01:15:32.61ID:upKL4j/Q
トレイト境界は誤訳で言いたいならトレイトバウンドでいい
これがFA
2025/04/06(日) 01:23:12.69ID:upKL4j/Q
欧米でのboundと日本の境界は必ずしも同じ意味ではない
そもそもの単語の概念が違う

boundの制約部分の意味合いを翻訳者が取れずにboundの一番目に来る訳語の境界を当ててしまった
これが結論
2025/04/06(日) 02:18:12.24ID:n88cNHgB
うっかりミスをしただけなら喧嘩にはならんがな
原作を改変することは許されない的なルールを守る意志があるだろ
2025/04/06(日) 03:03:56.95ID:6x/xr+p4
安いな
https://www.rustinaction.com
https://www.manning.com/books/rust-in-action
高いな
https://www.ama損.co.jp/dp/1617294551
輸入だとしてもなんでこんな値段になるんだ
2025/04/06(日) 08:58:25.67ID:2WEREMbe
つまらん言い争いする前にとっとと Rust Book最新版翻訳して、好きな方の用語に統一しとけ。

最新版の翻訳も無いのに日本語和訳とかゴミみたいな話しても無駄だろ。
2025/04/06(日) 14:12:55.00ID:n88cNHgB
無駄は利益でも損失でもない
つまり有益でも有害でもない
2025/04/06(日) 14:48:28.98ID:MSyTNjpB
ゴミ翻訳が何万人ものユーザーに悪影響を与えてるんだから単なる無駄どころかガチ害悪
2025/04/06(日) 18:52:05.55ID:n88cNHgB
でも、あなたの影響は0だった
2025/04/06(日) 21:35:24.97ID:POwi82Q3
>>320
すげーまともだな
330デフォルトの名無しさん
垢版 |
2025/04/07(月) 17:37:54.88ID:Hr3jPqkP
Trait制約では意味が全く違う
2025/04/07(月) 17:41:13.06ID:Ww5VQZEx
Javaのインターフェイス程度の代物にそんあ小難しい概念いらんけどな
2025/04/07(月) 17:42:09.21ID:SejWwHdL
「トレイト制約」が正しい!
2025/04/07(月) 18:06:19.68ID:tzb+Pi1x
Trait boundsが正解
無理に日本語にすんな
2025/04/07(月) 18:31:33.33ID:H5zq3RB8
>>330
どう意味が違うの?
2025/04/07(月) 22:20:40.10ID:dUVt/NLM
ジェネリクスは小難しいから普及が遅かった
Javaのインターフェースはそれ自体はジェネリクス普及前からあった
Javaのインターフェースはそれ自体はジェネリクス引数の制約ではない

ここで重要なのは、主語を変えても同じことが言えるなどといった保証はないってことだ
2025/04/07(月) 23:52:56.67ID:RGwsG0mw
ジェネリクスはAda発祥やで
2025/04/08(火) 00:14:35.10ID:2Ld3Figm
CLUやろ
2025/04/08(火) 10:44:56.88ID:fi2+odQD
Java界隈も「境界」という訳の異常性に気付いて徐々に避けるようになってる
339デフォルトの名無しさん
垢版 |
2025/04/08(火) 14:07:35.74ID:hfo/+BmV
制約とか言ってる低能
2025/04/08(火) 14:17:58.70ID:TmSh0jTk
traitも日本語訳すべきだろ
大陸中国語では「特質」と訳してるらしい
ただし漢字は簡体字で
2025/04/08(火) 14:31:57.06ID:dbg0dckm
特質系とか漫画の読みすぎかよ
漫画の語彙を訳に使うのあるかもしれん
無量空所
2025/04/08(火) 15:12:55.89ID:shzc/EQE
boundが”trait bounds”のような名詞のでしか出てこないのであれば”トレイトバウンド”で十分なんだが動詞としてもその過去分詞が形容詞としても使われるから意味の通じる日本語にする必要はあるだろうな
2025/04/08(火) 15:13:35.03ID:BOqdaM8X
君らの議論見てると日本語と英語の意味が完全には一致してないからもめてるんだろ
適切な言葉が日本語にないのなら原語そのまま使えよ
どうしても日本語にしたけりゃ新語つくっちゃえよ、トレイト制界とかトレイト境約とか
2025/04/08(火) 15:25:59.18ID:bT7tyFQB
完全には一致してないではなくて
境界は完全に間違ってるからな
2025/04/08(火) 15:32:05.13ID:dbg0dckm
ワッチョイつけようぜ
2025/04/08(火) 15:32:48.21ID:y+3ouVjs
10人中8〜9人がおおよその意味を想像できるような新語ならともかく想像できないような新語なら訳さないほうがよっぽどマシ
2025/04/08(火) 15:37:41.98ID:0DGOjuLN
トレイト境界(trait bounds)のboundsは境界・領域・範囲などどれでもいいんだけど、
境界はもちろん二次的な意味の二者間の意味ではなく単独の意味の方で、
どうしても二者間に固執したい人なら内と外の二者間の境界と考えて。
2025/04/08(火) 15:47:16.64ID:Spaoq+uw
なんでもいいというのが一番困る、という寓話があるが、その寓話には名前がない
2025/04/08(火) 15:59:24.30ID:v0gybFAh
題名も何でもいいからか
2025/04/08(火) 16:48:31.19ID:zjl9w56y
道?
2025/04/08(火) 17:08:27.56ID:lq55yQzg
トレイト執着
2025/04/08(火) 17:19:56.75ID:dbg0dckm
粘着やな
2025/04/08(火) 17:56:08.61ID:2okZDSQp
>>254-257
現象的にメンバの方のdropが先に呼ばれて
最後に自分のdropが呼ばれているようなのですが
これって仕様?
2025/04/08(火) 20:49:57.66ID:0DGOjuLN
>>353
Drop::drop()が呼ばれるのは親が先で子が後になるけど、
実際のptr::drop_in_place()が自動で呼ばれるのはもちろん子の処理を終えた後に親が後になる。
そのため安全に全自動で任せつつ、子の処理の前に親がやっておきたいdrop以外の前処理だけを親のDrop::drop()に書くことができる。
複数の子どもの処理の順序や自動の有無も含めて制御したい時はManuallyDropをつかう。
2025/04/08(火) 21:53:23.33ID:Spaoq+uw
The impl Trait syntax ... is actually syntax sugar for a longer form known as a trait bound

構文糖じゃない方のトレイト
実際のトレイト
356デフォルトの名無しさん
垢版 |
2025/04/09(水) 12:19:06.96ID:KZk4pTLo
トレイト制約などといってる輩は全く理解できていないと自白してるようなもの
2025/04/09(水) 15:01:13.51ID:SwtFlD5e
糖質境界
2025/04/09(水) 18:04:17.50ID:3/XtwXUj
もうちょっと正義感が強かったら
べつにカジノ経営者が自白しなくても、カジノは特殊詐欺とほぼ同じというのは確定事項として扱えるようになる
2025/04/09(水) 18:54:36.47ID:NcLuCgfe
三店制約
2025/04/09(水) 18:55:51.86ID:PAP9iIr7
パチ屋
2025/04/09(水) 19:16:50.12ID:8s5+aT/q
インターフェース統一協会
2025/04/09(水) 19:33:46.61ID:a0uoZNgJ
言語仕様らしきものに忠誠心を示すのはわかるけど
誤訳された用語にすら全面的に支持して従うってどういうことなの?
2025/04/09(水) 19:34:49.38ID:PAP9iIr7
開発してない人なんでしょう
評論家
2025/04/09(水) 19:44:27.38ID:eKbqXV9X
仮に誤訳だとしても理解を妨げるほど害悪あるほどじゃない
通じれば用は足りてる
他分野でもそんなのはいくらでもある
ひっくり返さないと気がすまないのは幼稚なだけ
2025/04/09(水) 19:59:28.62ID:a0uoZNgJ
拘るほうが幼稚

普及を目指すなら誰にでも理解しやすい用語を選ぶのが唯一の正義
2025/04/09(水) 20:09:07.64ID:PAP9iIr7
普及目指してないよ
分かるやつだけ使え
一般人はPHPでも使っとき
2025/04/09(水) 20:15:02.42ID:a0uoZNgJ
前はトレイト境界やライフタイム境界でググったらもしかしてトレイト協会とかもしかしてライフタイム協会って出てた
368デフォルトの名無しさん
垢版 |
2025/04/09(水) 20:29:27.44ID:KZk4pTLo
>>364
Trait境界は正確な訳と言って良いと思います
369デフォルトの名無しさん
垢版 |
2025/04/09(水) 20:33:30.34ID:KZk4pTLo
Trait制約は、引数を関数というような感じですね
全く意味が違います
2025/04/09(水) 20:35:28.68ID:PAP9iIr7
どうでもいいーー
2025/04/09(水) 20:41:17.16ID:KXz/CDBQ
Rustが嫌いだってblogがバズってるらしい
たぶん訳語がおかしいせいだろうな
しらんけど
2025/04/09(水) 20:43:27.68ID:PAP9iIr7
あれはCやったことないからRustの恩恵がわからないちゃんだろ
GC言語だけ使っておけ案件
2025/04/09(水) 21:32:51.79ID:a0uoZNgJ
GC言語でいい人はRust使うメリットはないからな
2025/04/09(水) 21:42:42.42ID:OL648qCg
>>371
見たけどあまりに初心者で慣れてなくて知らなかった話が話が大半だった
結局どの言語でも同じで慣れたら何ら問題ない話ばかりだった

コンパイルが多少遅いのは仕方ないが
初心者コピペで以下の状況だったのが笑えた

>>[profile.release]
>>lto = true
>>codegen-units = 1
>>opt-level = 3
>>panic = "abort"
>>strip = true

>この設定ですが意味を理解して書かれてます?
>LTOはリンク時最適化なので有効にすればビルドは遅くなります。
>codegen-units は最大何並列でコード生成するかなので1にすれば当然ビルドは遅くなります。
2025/04/09(水) 21:45:24.08ID:a0uoZNgJ
初心者相手に俺つえーしてる時点でカッコ悪いとしか…
みじめなのはどっちなんだろう
2025/04/09(水) 21:49:28.76ID:OL648qCg
>>373
GCの有無なんて慣れの問題
慣れれば設計やコーティングで躓くような部分ではない
無理なことはGC言語で書かれたものを再設計することなく移植しようとすることくらいだ
2025/04/09(水) 21:54:31.24ID:EdteNgmQ
人によるから分からんぞ。PHPのスレ行って聞いてきな
2025/04/09(水) 21:57:14.91ID:KXz/CDBQ
PHPerはあまりにユーザー層が違うので、同じ言葉で語り合うことはできない
2025/04/09(水) 22:02:44.82ID:a0uoZNgJ
大多数のGCあり言語だとほぼ意識しなくていいノイズみたいなところをC,C++やRustは意識しないといけない
2025/04/09(水) 22:03:09.70ID:ad8YJVBj
だろ。Rustに慣れる前に使い出せない人種が沢山いるということさ
普及は諦めよう
2025/04/09(水) 22:05:24.58ID:a0uoZNgJ
ちゃんとメリットをしめして脱落者を出さなければプログラマの一般教養的なところまで
押し上げることは出来ると思うけどねえ

今は動機付けが薄い
学習のハードルが高い
2025/04/09(水) 22:08:21.15ID:3/XtwXUj
自動車の作り方も普及させる気ないじゃん
現に、自力で自動車作れなくなった人達が反乱を起こしている
2025/04/09(水) 22:10:28.34ID:a0uoZNgJ
自分は最初伝統的なenumの比較すらできなくて困った覚えがある
わかればわかったになるけど他の人がすんなりとそのことについて知識を得て使えるのかどうかと言えば
使えないで脱落するんだろうなと
2025/04/09(水) 22:10:51.20ID:ad8YJVBj
作り方は分かるけど給料が高いから作っても売れないという問題だったような
2025/04/09(水) 22:12:01.49ID:ZMWXeYiA
>>379
その違いは慣れてしまえば大した問題ではない
慣れて対応できるようになるだけでGC言語のデメリットから解放される
特にRustなら扱いを間違えていればコンパイラが指摘してくれるので困ることもない
2025/04/09(水) 22:14:58.46ID:a0uoZNgJ
扉が開かない限り入ってこないで回れ右して帰っていくよ
そういう人が悪いのではない
違うなら違うと言う説明を気づかせないとダメかな

知ってる人は知ってるだけなのでそれが偉いと言う話ではない
2025/04/09(水) 22:15:05.70ID:ZMWXeYiA
>>380
Rustごときを使えないようならプログラマとしてはかなり能力が低い人か頭が硬くなってしまった人のどちらか
2025/04/09(水) 22:16:00.82ID:13Xj1tSa
名前忘れたけど、構文がRustでGC付きの言語が発表されてたよね
2025/04/09(水) 22:16:14.95ID:a0uoZNgJ
もう一度言うけど
知ってる人は知ってるだけなのでそれが偉いと言う話ではない
2025/04/09(水) 22:18:40.23ID:ZMWXeYiA
>>386
基本的なことを知ってるか知ってないかはどの言語でも慣れの問題だからどうでもいい話
一定の能力差さえあればRustは難しくない
もし難しいと感じた人は能力が低いか頭が硬くなってる
2025/04/09(水) 22:20:09.93ID:a0uoZNgJ
その硬くなっていない頭でtsもjsもpythonも日常的に使えているのかなあ???
2025/04/09(水) 22:25:09.60ID:ad8YJVBj
>>387
98%がそっち側だよ
こんな所で話せる人は先鋭的な2%
393デフォルトの名無しさん
垢版 |
2025/04/09(水) 22:27:48.21ID:czqUXFNF
GCって多少のパフォーマンスと引き換えにC/C++の面倒を大きく減らすものだからな
Javaが流行った理由もそれだし

Rustなら借用チェッカが安全性の問題をうまく解決するといっても、GCに慣れてる人からすれば、他の言語ではそもそも問題にならないようなものを課題として取り上げて解いてるだけに思えるかもしれない
C/C++の速度が必要な分野ならRustは強力だけど、それ以外の分野だと学習コストや面倒くささが上回ると思うのもまあわかる
2025/04/09(水) 22:31:27.91ID:ad8YJVBj
ワイの周りにもRustは勧められないんよな。趣味でやるベエ
395デフォルトの名無しさん
垢版 |
2025/04/09(水) 22:33:41.47ID:czqUXFNF
>>388
Gleam?
あれはRustの構文 + Erlangなので、「GCあり」よりも「並行処理に強い」の方をウリにする言語だと思う
2025/04/09(水) 22:51:34.96ID:ad8YJVBj
Beam VM上のか
2025/04/09(水) 22:57:26.37ID:vrO9vcWo
>>364
通じてないでしょ
境界って何?
何と何と境なの?
2025/04/09(水) 23:23:57.52ID:huhl+UxL
>>397
「境界」は辞書を引くとわかるけど
「何かと何かの境界」という二者間の意味二次的であって
「対象となる範囲の境界」が原義なんだよ

これは古語辞典だとよりはっきりして
境界は「自分の認識の及ぶ対象・範囲」が原義で
更に「自分の能力の及ぶ範囲」という意味が加わってくる

トレイト境界はもちろん二者間ではなく原義の方
2025/04/09(水) 23:26:38.18ID:p9TCxcQX
古語辞典?w
2025/04/09(水) 23:32:36.15ID:3/XtwXUj
意味が全然分からないレベルになるともう実質的に名前がないのと同じ
名前がないものは世の中にいくらでもある
2025/04/09(水) 23:32:43.95ID:huhl+UxL
これは一般生活で使われる境界も同じ例えば「土地の境界」といえば(自分もしくは対象の)土地の境界であり
特定の誰々さんの土地との境界ではない
「市の境界」も同じでその市の範囲を意味していてどこか特定の市町村との境界ではない
トレイト境界も同じでそのトレイトの効力やカバーする範囲や領域
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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