公式
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/
探検
Rust part28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/03/24(月) 17:37:00.15ID:NJwebgj2200デフォルトの名無しさん
2025/04/02(水) 20:00:01.91ID:Jip2DsUV まだ訳の問題だと思っているのか
201デフォルトの名無しさん
2025/04/02(水) 20:36:53.45ID:ZXMS8tUt 制約で決まったみたいだね
202デフォルトの名無しさん
2025/04/02(水) 21:03:24.67ID:Guu+GWGm 『ゼロから学ぶRust』という書籍だとトレイト制約だな
訳なんだから複数あることはあり得るし、それ以上でもそれ以下でもない
訳なんだから複数あることはあり得るし、それ以上でもそれ以下でもない
203デフォルトの名無しさん
2025/04/02(水) 21:24:12.08ID:BbIBPK29 まぁ自分の思う訳語を広めたいんなら本を書いたり記事を書いたりすればいいのであって
このスレでレスバして決めるようなことではないよな
このスレでレスバして決めるようなことではないよな
204デフォルトの名無しさん
2025/04/02(水) 21:33:29.51ID:+3uS3HDF トレイト制約境界にしよう
205デフォルトの名無しさん
2025/04/02(水) 21:56:50.54ID:XDSWIi9m まぁオライリーからして制約なんでしょそもそも
206デフォルトの名無しさん
2025/04/02(水) 22:06:25.87ID:7MGV8+qg オライリーも質が落ちたな
207デフォルトの名無しさん
2025/04/02(水) 22:25:27.67ID:xGG0i3Qy 境界信者 :「boundsに制約の意味はない!」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「制約という単語は真逆の意味だから使ってはいけない」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「トレイト制約派は本質を理解できていないから制約なんて間違った用語を用いてしまう」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
www
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「制約という単語は真逆の意味だから使ってはいけない」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「トレイト制約派は本質を理解できていないから制約なんて間違った用語を用いてしまう」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
www
208デフォルトの名無しさん
2025/04/02(水) 22:47:40.00ID:UyFxJKtn209デフォルトの名無しさん
2025/04/02(水) 23:07:01.46ID:eWxvA1Ub そもそも特定の文脈においてしか「境界」と訳してはいけない単語なのにそれを知らずに誤訳をしてしまったのが間違いの始まり
その後繰り返し指摘があり何度も見直す機会があったにも関わらず自分の誤った判断を修正したくないばかりに「境界」に執着して日本のRustコミュニティの足を引っ張った罪は重い
その後繰り返し指摘があり何度も見直す機会があったにも関わらず自分の誤った判断を修正したくないばかりに「境界」に執着して日本のRustコミュニティの足を引っ張った罪は重い
210デフォルトの名無しさん
2025/04/02(水) 23:08:32.45ID:dxnRa7Rm boundsの訳語を制約としてはいけない理由がようやくわかった
211デフォルトの名無しさん
2025/04/02(水) 23:10:03.40ID:ETZ+3G/b X=X (XはXである) という等式は無意味だとか意味不明だとかいう批判は日本語限定じゃなくて普遍的な話題だ
212デフォルトの名無しさん
2025/04/02(水) 23:13:35.48ID:UyFxJKtn 「制約とは型もしくはトレイトに対する制約のことです」
となり破綻する
だから英語でもboundsとconstraintを使い分けているのだ
となり破綻する
だから英語でもboundsとconstraintを使い分けているのだ
213デフォルトの名無しさん
2025/04/02(水) 23:22:33.90ID:ZXMS8tUt 美味しんぼ「冬のアラは最高たい!」
※ここでのアラはクエのことです
※ここでのアラはクエのことです
214デフォルトの名無しさん
2025/04/02(水) 23:26:13.72ID:dxnRa7Rm boundsの訳語を制約としてはいけない理由はわかったけど
boundsの訳語を何にすると良いのかな
boundsの訳語を何にすると良いのかな
215デフォルトの名無しさん
2025/04/02(水) 23:52:15.22ID:3y9C0Jbf 境界信者:「boundsに制約の意味はない」
境界信者:「trait boundsが何かを制約することはない」
境界信者:「制約の視点で見るやつは本質を理解してない」
(公式リファレンスが指摘されると)
境界信者:「境界は制約である」
www
境界信者:「trait boundsが何かを制約することはない」
境界信者:「制約の視点で見るやつは本質を理解してない」
(公式リファレンスが指摘されると)
境界信者:「境界は制約である」
www
216デフォルトの名無しさん
2025/04/02(水) 23:53:09.75ID:9mU4kqKI 「トレイト制約とは、ジェネリクスとして受け入れる型をトレイトにより制限する機能です」
とでも書けばいいんじゃないの
単語の繰り返しを避けるのは文章表現の問題であって、それらが理屈の上で異なるものという意味ではない
特に英語だと、同じ単語を避けるための言い換えをよく使う
とでも書けばいいんじゃないの
単語の繰り返しを避けるのは文章表現の問題であって、それらが理屈の上で異なるものという意味ではない
特に英語だと、同じ単語を避けるための言い換えをよく使う
217デフォルトの名無しさん
2025/04/02(水) 23:59:24.49ID:iqeRQBxg >>216
それは本質を理解できておらず失格
trait boundsは機能ではない
traitのカヴァーする領域を示している
それが型に対する制約となる
したがってtrait boundsをトレイト制約と訳すのは理解できていない証拠
それは本質を理解できておらず失格
trait boundsは機能ではない
traitのカヴァーする領域を示している
それが型に対する制約となる
したがってtrait boundsをトレイト制約と訳すのは理解できていない証拠
218デフォルトの名無しさん
2025/04/03(木) 00:01:08.33ID:8CqSbYxm いつまで日本語喋ってんだよ
219デフォルトの名無しさん
2025/04/03(木) 00:04:50.72ID:+bCmk9Ai >>215
やめたれw
やめたれw
220デフォルトの名無しさん
2025/04/03(木) 00:15:34.46ID:ZaOVYWDn 他のもので例えるとわかりやすい
「人間は哺乳類である」
これは確かに正しいが人間と哺乳類は意味が異なる
人間と言うべきところで哺乳類と言うのは間違い
「boundsは制約(constraint)である」
これは確かに正しいがboundsと制約(constraint)は意味が異なる
boundsと言うべきところで制約と言うのは間違い
「人間は哺乳類である」
これは確かに正しいが人間と哺乳類は意味が異なる
人間と言うべきところで哺乳類と言うのは間違い
「boundsは制約(constraint)である」
これは確かに正しいがboundsと制約(constraint)は意味が異なる
boundsと言うべきところで制約と言うのは間違い
221デフォルトの名無しさん
2025/04/03(木) 00:16:55.80ID:yptlPnek 「制約は制約である」という文は数学的には全く問題ないのだ
でも工学的あるいは商業的には、役に立たない(気がする)文は過度に問題視される
でも工学的あるいは商業的には、役に立たない(気がする)文は過度に問題視される
222デフォルトの名無しさん
2025/04/03(木) 00:20:44.56ID:ZaOVYWDn 人間は哺乳類である
哺乳類は生物である
いずれも正しいが意味が明確に異なる
boundsはconstraintである
これも同様に両者は意味が明確に異なる
だからわざわざ別の単語を用いている
両者を共に同じ「制約」と訳すのは頭が弱い人であると断言できる
哺乳類は生物である
いずれも正しいが意味が明確に異なる
boundsはconstraintである
これも同様に両者は意味が明確に異なる
だからわざわざ別の単語を用いている
両者を共に同じ「制約」と訳すのは頭が弱い人であると断言できる
223デフォルトの名無しさん
2025/04/03(木) 01:01:25.93ID:SsrDHKVx >>221
なんと進次郎構文だ
なんと進次郎構文だ
224デフォルトの名無しさん
2025/04/03(木) 01:08:41.15ID:yptlPnek >>223
詐欺にも誹謗中傷にもならない、比較的安全な構文だ
詐欺にも誹謗中傷にもならない、比較的安全な構文だ
225デフォルトの名無しさん
2025/04/03(木) 01:17:18.29ID:fEBWzqBi Trait制約と言ってる人は理解が足りていない
226デフォルトの名無しさん
2025/04/03(木) 01:32:50.74ID:aMSce+h/ 文脈を無視して対訳表だけで機械的に翻訳しようとするからゴミ翻訳ができあがる
それも指摘されたそばからやってるんだから始末に終えない
それも指摘されたそばからやってるんだから始末に終えない
227デフォルトの名無しさん
2025/04/03(木) 01:57:47.64ID:jzL1ni2p Trait BoundsやLifetime BoundsなどでのBoundsは一般名詞ではなくて専門用語として位置付けられてるよ
だからBoundsの日本語訳も常に一貫して同一の訳を当てないといけない
そして使われ方の意味合いがconstraint (制約)とは異なるため少なくとも「制約」とは異なる訳を当てないといけないね
だからBoundsの日本語訳も常に一貫して同一の訳を当てないといけない
そして使われ方の意味合いがconstraint (制約)とは異なるため少なくとも「制約」とは異なる訳を当てないといけないね
228デフォルトの名無しさん
2025/04/03(木) 07:34:50.76ID:x1QSEzan いつまでもアホなこと言っていないで、まずはRust Book最新版の翻訳を作って統一しとけ。
最新版で「トレイト制約」になっていれば文句言わんよ。
最新版で「トレイト制約」になっていれば文句言わんよ。
229デフォルトの名無しさん
2025/04/03(木) 07:55:55.24ID:OyObPfFB 機械翻訳みたいに一対一に当て嵌めてるのはどっちなんだか
辞書で引けば constraint = 制限、制約、圧迫、束縛 などいろいろあるよ?
英語だと
bound is a constraint that restricts the type ...
のように、ある概念を伝えるのに複数の語を使うことをよく行う
これは同じ単語の繰り返しを避ける (そういう文章を拙いと見做す) 文化があるのと、単語が誤って理解されないようにというのがある
この例なら、 bound が「飛び跳ねる」などの意味と解釈されないよう、 constraint や restrict などと言い換えることでそれが制限・制約という意味だと伝わるようにする
もちろん用語としては trait bonud が正式な名称だから、これを trait constraint や trait restriction とは呼ばない
けど、意味としてはこれらに近いということ
辞書で引けば constraint = 制限、制約、圧迫、束縛 などいろいろあるよ?
英語だと
bound is a constraint that restricts the type ...
のように、ある概念を伝えるのに複数の語を使うことをよく行う
これは同じ単語の繰り返しを避ける (そういう文章を拙いと見做す) 文化があるのと、単語が誤って理解されないようにというのがある
この例なら、 bound が「飛び跳ねる」などの意味と解釈されないよう、 constraint や restrict などと言い換えることでそれが制限・制約という意味だと伝わるようにする
もちろん用語としては trait bonud が正式な名称だから、これを trait constraint や trait restriction とは呼ばない
けど、意味としてはこれらに近いということ
230デフォルトの名無しさん
2025/04/03(木) 11:23:23.08ID:6oWT3dN7 >>226が批判してるのはboundを制約と訳すとBounds are constraints on a type or traitが「制約は制約である」となってしまうからtrait boundsもトレイト制約と訳すべきではないと言ってるやつのほうでしょ
231デフォルトの名無しさん
2025/04/03(木) 12:16:36.08ID:v+gtq4Fg その一文だけ、うまく訳せばいいんじゃないの?
動詞の方を簡易な日本語表現にすれば進次郎構文は避けられる
動詞の方を簡易な日本語表現にすれば進次郎構文は避けられる
232デフォルトの名無しさん
2025/04/03(木) 12:19:56.95ID:XzSm1dM6 トレイト制約という明らかに間違った別の訳をしつこく持ち出す人はRust界の混乱を狙った荒らしなんだと思うよ
なぜtrait constraintではなくtrait boundsなのかという一番本質的なRustでの概念の違いに興味を持たないことからも
なぜtrait constraintではなくtrait boundsなのかという一番本質的なRustでの概念の違いに興味を持たないことからも
233デフォルトの名無しさん
2025/04/03(木) 12:20:15.17ID:v+gtq4Fg 制約を英英辞典か国語辞典で調べて考えよう
234デフォルトの名無しさん
2025/04/03(木) 12:23:12.59ID:v+gtq4Fg 英語的にはboundsの方が身近な表現かもしれんな。コンストなんちゃらは共和党支持層が嫌うラテン語由来なのだっけ
235デフォルトの名無しさん
2025/04/03(木) 12:33:49.45ID:qiqxc1gJ さっさとペンキの色決めろよ
236デフォルトの名無しさん
2025/04/03(木) 12:34:32.24ID:4NO2Gn5f237デフォルトの名無しさん
2025/04/03(木) 12:39:11.80ID:v+gtq4Fg トレイト緊縛で決まりな
238デフォルトの名無しさん
2025/04/03(木) 12:52:17.06ID:66iDY+yi 「トレイトバウンド」よりも日本語話者の理解を助ける言葉じゃなければ意味がないんだよな
その意味では同じ誤訳でも「トレイト境界」より「トレイト束縛」のほうがベターな訳だった
その意味では同じ誤訳でも「トレイト境界」より「トレイト束縛」のほうがベターな訳だった
239デフォルトの名無しさん
2025/04/03(木) 12:55:25.10ID:v+gtq4Fg トレイト緊縛。大勝利ってこと
240デフォルトの名無しさん
2025/04/03(木) 15:48:03.91ID:+bCmk9Ai 制限でいいよ
Javaの場合は
「Bounded Type Parameters」
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html
google翻訳では「制限付き型パラメータ」
凄くわかりやすいよね
制約よりも境界よりもずっとわかりやすいよね
Javaの場合は
「Bounded Type Parameters」
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html
google翻訳では「制限付き型パラメータ」
凄くわかりやすいよね
制約よりも境界よりもずっとわかりやすいよね
241デフォルトの名無しさん
2025/04/03(木) 17:10:42.17ID:fy3xRWQw 次スレは
Rust 29constraints
だね
Rust 29constraints
だね
242デフォルトの名無しさん
2025/04/03(木) 18:04:14.96ID:g1vkomnK そういう変なことしだすと隔離失敗するからやめてね
243デフォルトの名無しさん
2025/04/03(木) 18:08:12.59ID:LgxNjrJf Javaの日本語リファレンス終わったのか。Java終了だな
244デフォルトの名無しさん
2025/04/03(木) 18:23:21.08ID:CH3VtQpy245デフォルトの名無しさん
2025/04/03(木) 18:30:06.80ID:N2gRzLe2 トレイト制約はトンデモ勘違いだから絶対避けるべきだけど
トレイト境界やトレイト範囲やトレイト領域やトレイト上界やトレイト上限やトレイト限界などの意味するところが合ってる用語ならばどの用語に統一されても構わないよ
もちろんトレイト境界のままでもOK
トレイト境界やトレイト範囲やトレイト領域やトレイト上界やトレイト上限やトレイト限界などの意味するところが合ってる用語ならばどの用語に統一されても構わないよ
もちろんトレイト境界のままでもOK
246デフォルトの名無しさん
2025/04/03(木) 18:38:58.21ID:e7eRGvBW Bound単体を「型制約」と訳したいならTrait Boundsは「トレイトによる型制約」とでも訳せばいいだろ
重要なのは形式よりも意味のほうなんだから
重要なのは形式よりも意味のほうなんだから
247デフォルトの名無しさん
2025/04/03(木) 18:48:27.65ID:6vk0Qg+y248デフォルトの名無しさん
2025/04/03(木) 19:00:17.94ID:PM+GnFWY >>246
普通に「トレイト境界は型やサブトレイトに対する制約である」でええやん
普通に「トレイト境界は型やサブトレイトに対する制約である」でええやん
249デフォルトの名無しさん
2025/04/03(木) 19:07:19.95ID:+bCmk9Ai サブトレイトって言い続けてる奴一人な件w
250デフォルトの名無しさん
2025/04/03(木) 19:13:35.15ID:PM+GnFWY どういうこと?
みんな使っていてRustのどの記事を見てもスーパートレイトとサブトレイトと訳されてるけど別の訳があるの?
みんな使っていてRustのどの記事を見てもスーパートレイトとサブトレイトと訳されてるけど別の訳があるの?
251デフォルトの名無しさん
2025/04/03(木) 19:32:15.98ID:yptlPnek 形式主義って、完全情報ゲームなんだよな
オリジナルの原文にない情報が後知恵で追加されたらそれは完全情報とは言えないよね
オリジナルの原文にない情報が後知恵で追加されたらそれは完全情報とは言えないよね
252デフォルトの名無しさん
2025/04/03(木) 19:35:30.32ID:SaeLc9s2 公式ではなくても定着していてカジュアルな場面では当たり前のように使われる用語ってあるからなぁ。
C++ で構造体とかアップキャストとかメソッドとか言ってることは結構あるでしょ。
C++ で構造体とかアップキャストとかメソッドとか言ってることは結構あるでしょ。
253デフォルトの名無しさん
2025/04/03(木) 20:32:04.51ID:XfeSNHGY ほかに話すことはいくらでもあるのに永遠にboundの訳語だけを言い争い続けるこのスレ、終わってるよ
ていうか別スレ立ててそっちでやれや
ていうか別スレ立ててそっちでやれや
254デフォルトの名無しさん
2025/04/03(木) 21:30:43.37ID:fy3xRWQw structのdrop定義したとき
元のstructのmemberに別のstrustがあったら
どっちのdropが先に呼ばれる?
あと元のstructのmemberに自分のstructがあったら?
元のstructのmemberに別のstrustがあったら
どっちのdropが先に呼ばれる?
あと元のstructのmemberに自分のstructがあったら?
255デフォルトの名無しさん
2025/04/03(木) 21:31:56.02ID:g1vkomnK >>253
ほかに話すことがないからこうなってるんだって
ほかに話すことがないからこうなってるんだって
256デフォルトの名無しさん
2025/04/03(木) 21:45:12.33ID:EBCyuD6U257デフォルトの名無しさん
2025/04/03(木) 21:58:57.73ID:9igU0B0K >>254
最初に構造体自身の drop が呼ばれて、その後に各フィールドの drop が宣言順に呼ばれる
例えば
struct Foo { bar: Bar, baz: Baz }
なら、最初に Foo::drop が呼ばれて、その後に Bar::drop, Baz::drop の順に呼ばれる
「元のstructのmemberに自分のstructがあったら」はちょっと意図が汲み取れなかった
Rcで自身への参照を子が持つようなケースであれば、drop が呼ばれずメモリリークする
(親がdropしないと子がdropしない、子がdropしないと親がdropしない、という関係になるため)
最初に構造体自身の drop が呼ばれて、その後に各フィールドの drop が宣言順に呼ばれる
例えば
struct Foo { bar: Bar, baz: Baz }
なら、最初に Foo::drop が呼ばれて、その後に Bar::drop, Baz::drop の順に呼ばれる
「元のstructのmemberに自分のstructがあったら」はちょっと意図が汲み取れなかった
Rcで自身への参照を子が持つようなケースであれば、drop が呼ばれずメモリリークする
(親がdropしないと子がdropしない、子がdropしないと親がdropしない、という関係になるため)
258デフォルトの名無しさん
2025/04/03(木) 22:12:13.45ID:lMDfDaJq259デフォルトの名無しさん
2025/04/03(木) 22:12:45.42ID:1N6AvgYL weekじゃなくてweak
260デフォルトの名無しさん
2025/04/03(木) 22:20:03.44ID:a28tTbld261デフォルトの名無しさん
2025/04/03(木) 22:44:11.30ID:lMDfDaJq >>260
仮に「境界は制約である」が正しいとしても「制約は境界である」とは限らないので「boundsは境界である」は成り立たないぞ
仮に「境界は制約である」が正しいとしても「制約は境界である」とは限らないので「boundsは境界である」は成り立たないぞ
262デフォルトの名無しさん
2025/04/03(木) 22:54:37.51ID:jBjTQcyj Rustの公式リファレンスを見ればわかるけど
boundsはそのトレイトやライフタイムなどが取り得る範囲を意味している
それがジェネリックな型に対しては制約となるという扱い
例えばCopy bounds等の表現があるがCopyという制約があるわけではない
むしろCopyという特性を持つ
結果的にジェネリックな型に対しては制約となるだけである
したがってトレイト制約というねじ曲がった用語はふさわしくない
boundsはそのトレイトやライフタイムなどが取り得る範囲を意味している
それがジェネリックな型に対しては制約となるという扱い
例えばCopy bounds等の表現があるがCopyという制約があるわけではない
むしろCopyという特性を持つ
結果的にジェネリックな型に対しては制約となるだけである
したがってトレイト制約というねじ曲がった用語はふさわしくない
263デフォルトの名無しさん
2025/04/03(木) 23:11:56.25ID:+bCmk9Ai 彼はたった一人で>>262のような主張を繰り返すのである
逆走老人が「みんなが逆走してる」と主張するかのように
逆走老人が「みんなが逆走してる」と主張するかのように
264デフォルトの名無しさん
2025/04/03(木) 23:58:29.10ID:nPA8ABXZ トレイト境界は型パラメータに対してだけではなくトレイトオブジェクトでもdyn TraitA + TraitB + TraitCと指定するけど
機能を列挙していく感じで使うから制約とは真逆のイメージだわ
機能を列挙していく感じで使うから制約とは真逆のイメージだわ
265デフォルトの名無しさん
2025/04/04(金) 00:08:35.54ID:OzC2/LQ/ 拡張ってこと
266デフォルトの名無しさん
2025/04/04(金) 00:13:55.18ID:vNtVyPjO >>264
それは trait object であって bound とは呼ばないんじゃないか?
trait Foo オブジェクト, trait Foo+Baz オブジェクトといった感じ
Rust by example だとそもそも bound の説明はジェネリクスの章の中にある
(14. Generics > 14.4. Bounds という構成。ちなみに trait object は 16. Traits の中)
Boundはどちらかというとジェネリクスの型を制限する用途の方を指すと思う
それは trait object であって bound とは呼ばないんじゃないか?
trait Foo オブジェクト, trait Foo+Baz オブジェクトといった感じ
Rust by example だとそもそも bound の説明はジェネリクスの章の中にある
(14. Generics > 14.4. Bounds という構成。ちなみに trait object は 16. Traits の中)
Boundはどちらかというとジェネリクスの型を制限する用途の方を指すと思う
267デフォルトの名無しさん
2025/04/04(金) 00:20:38.53ID:OoQgsVdq 昔は実行時に検査していたことをコンパイル時に検査できるという見方はものすごく理解を助ける
だから検査や制約を強調していい
もしバランスを崩したくないと思ってるなら、単一の言語にこだわること自体がバランス悪いから
Pythonでも使ってみればいい
だから検査や制約を強調していい
もしバランスを崩したくないと思ってるなら、単一の言語にこだわること自体がバランス悪いから
Pythonでも使ってみればいい
268デフォルトの名無しさん
2025/04/04(金) 00:25:07.15ID:OzC2/LQ/ rubyの方が型無いよ
269デフォルトの名無しさん
2025/04/04(金) 00:40:23.72ID:E6ySPclo >>266
一応それもBoundの範疇みたいだけどね
https://doc.rust-lang.org/reference/types/trait-object.html
まあどっちにしろどちらの視点で見るかの話はジェネリクスとなんら変わりない
Boundの公式定義にある通り
一応それもBoundの範疇みたいだけどね
https://doc.rust-lang.org/reference/types/trait-object.html
まあどっちにしろどちらの視点で見るかの話はジェネリクスとなんら変わりない
Boundの公式定義にある通り
270デフォルトの名無しさん
2025/04/04(金) 00:44:33.84ID:E6ySPclo いやジェネリクスのように好き勝手に追加していけないという制約があるから
トレイトオブジェクトのほうが「機能を列挙していく」という視点にはより無理があるかもな
トレイトオブジェクトのほうが「機能を列挙していく」という視点にはより無理があるかもな
271デフォルトの名無しさん
2025/04/04(金) 00:45:23.73ID:uFTmKMED そういえば最近use boundとか来てたんだっけ
272デフォルトの名無しさん
2025/04/04(金) 00:54:43.92ID:r+OUZNte >>266
そこに明記されてるね
Trait objects are written as the keyword dyn followed by a set of trait bounds,
トレイトオブジェクトはキーワードdynに続くトレイト境界のセットとして記述される
but with the following restrictions on the trait bounds.
ただしトレイト境界に以下の制限がある
(以下略)
そこに明記されてるね
Trait objects are written as the keyword dyn followed by a set of trait bounds,
トレイトオブジェクトはキーワードdynに続くトレイト境界のセットとして記述される
but with the following restrictions on the trait bounds.
ただしトレイト境界に以下の制限がある
(以下略)
273デフォルトの名無しさん
2025/04/04(金) 10:34:51.57ID:8rdTlYhI こんな分かりきったことで議論する意味は何なのか
制約ではまるっきり意味が違う
制約ではまるっきり意味が違う
274デフォルトの名無しさん
2025/04/04(金) 11:01:51.62ID:OoQgsVdq トレイト制約(バウンズ)の集合の制限
これ、「ポインタのポインタのポインタ」をいちいちtypedefするやつと同じパターンだな
だから単語の重複が許せないんだな
これ、「ポインタのポインタのポインタ」をいちいちtypedefするやつと同じパターンだな
だから単語の重複が許せないんだな
275デフォルトの名無しさん
2025/04/04(金) 11:17:35.72ID:22bgX6/4 AsRefやAsMutはtraitになってるのに
sliceのAsPtrやAsMutPtrがtraitになっていないのはなぜ?
sliceのAsPtrやAsMutPtrがtraitになっていないのはなぜ?
276デフォルトの名無しさん
2025/04/04(金) 11:54:32.49ID:Gh2v3Rhy アホなこと言っていないで、とっととRust Book最新版の翻訳を作って統一しとけ。
最新版で「トレイト制約」にすりゃいいだろ。
最新版で「トレイト制約」にすりゃいいだろ。
277デフォルトの名無しさん
2025/04/04(金) 12:57:24.90ID:XamlPiqQ278デフォルトの名無しさん
2025/04/04(金) 14:23:46.45ID:8rdTlYhI279デフォルトの名無しさん
2025/04/04(金) 14:43:55.26ID:eR4DolQd >>277
これブックマークしとけばええんかの
これブックマークしとけばええんかの
280デフォルトの名無しさん
2025/04/04(金) 15:06:26.98ID:8rdTlYhI RustやるにもC++から始めたほうが良いんじゃないかな
なぜそうなってるのか理解が進むと思う
なぜそうなってるのか理解が進むと思う
281デフォルトの名無しさん
2025/04/04(金) 15:10:43.72ID:eR4DolQd CやらないとC++分からないからCからオススメ
282デフォルトの名無しさん
2025/04/04(金) 16:14:54.75ID:yJNeJM2G >>277
“Bounds are constraints on a type or trait.”のbe動詞も、
「AはBである」と訳すものではなく、
「AはBになる(Bの特性を持つ)」で、どっちかといえばhasに近い意味合いになるんだよなぁって思ってる。
“Bounds are constraints on a type or trait.”のbe動詞も、
「AはBである」と訳すものではなく、
「AはBになる(Bの特性を持つ)」で、どっちかといえばhasに近い意味合いになるんだよなぁって思ってる。
283デフォルトの名無しさん
2025/04/04(金) 19:30:24.62ID:SRZxkDOr まだトイレ制限やってんのか
284デフォルトの名無しさん
2025/04/04(金) 22:39:40.99ID:optItjd0 >>270
トレイトオブジェクトで自動トレイト以外のトレイト境界を複数用いる場合は合成になるね
いわゆるメソッド無し「{}」宣言
// トレイト境界の合成
trait TraitAB: TraitA + TraitB {}
// 合成トレイト境界の実装 (使う型の分)
impl TraitAB for T1 {}
impl TraitAB for T2 {}
// あとは同じ
let x: &dyn TraitAB = &t1;
// または
let y: Box<dyn TraitAB> = Box::new(t2);
トレイトオブジェクトで自動トレイト以外のトレイト境界を複数用いる場合は合成になるね
いわゆるメソッド無し「{}」宣言
// トレイト境界の合成
trait TraitAB: TraitA + TraitB {}
// 合成トレイト境界の実装 (使う型の分)
impl TraitAB for T1 {}
impl TraitAB for T2 {}
// あとは同じ
let x: &dyn TraitAB = &t1;
// または
let y: Box<dyn TraitAB> = Box::new(t2);
285デフォルトの名無しさん
2025/04/04(金) 22:42:52.75ID:mQ0/kONA トイレット境界は難しいよ。いつもスリッパ履き替えるの忘れる
286デフォルトの名無しさん
2025/04/04(金) 22:52:47.44ID:saOSS87s 複オジの苦し紛れのクソみたいな言い訳自演も秒で否決されてて草
さすがにみんな複オジ耐性を身につけたか
さすがにみんな複オジ耐性を身につけたか
287デフォルトの名無しさん
2025/04/04(金) 23:41:57.03ID:XamlPiqQ >>284
トレイト境界は制約ではなく使う機能の列挙という理解でいいんだよな
トレイト境界は制約ではなく使う機能の列挙という理解でいいんだよな
288デフォルトの名無しさん
2025/04/04(金) 23:56:38.69ID:Y4yVUbBr289デフォルトの名無しさん
2025/04/05(土) 00:41:02.94ID:fzOXtcwa 子供扱いさせてから、大人も子供もどっちもどっちだと洗脳するんだよ
そうやって、自分は大人と同じだと思ってる子供を量産する
そうやって、自分は大人と同じだと思ってる子供を量産する
290デフォルトの名無しさん
2025/04/05(土) 01:02:47.81ID:VKg4cIYU291デフォルトの名無しさん
2025/04/05(土) 01:15:11.42ID:a8YBrxtn >>282
そんなバカげた見方をしなくても英語でも日本語でも同じで修飾語がある時にそれ省けば同等を意味しない
例えば
「彼はわたしにとって味方である」
「彼はあなたにとって敵である」
これは両立しえて対象を抜きに彼自体は味方でも敵でもない
「boundsは型に対する制約である」
これもbounds自体は制約でも何でもない
あくまでも型に対しては制約となるだけだ
それを理解できない人がbounds自体を制約と訳してしまうと、
他の至る所で日本語訳が破綻してしまう例が既にいくつも挙げられている通りだ
そんなバカげた見方をしなくても英語でも日本語でも同じで修飾語がある時にそれ省けば同等を意味しない
例えば
「彼はわたしにとって味方である」
「彼はあなたにとって敵である」
これは両立しえて対象を抜きに彼自体は味方でも敵でもない
「boundsは型に対する制約である」
これもbounds自体は制約でも何でもない
あくまでも型に対しては制約となるだけだ
それを理解できない人がbounds自体を制約と訳してしまうと、
他の至る所で日本語訳が破綻してしまう例が既にいくつも挙げられている通りだ
292デフォルトの名無しさん
2025/04/05(土) 02:11:02.04ID:sg9Ur0Fb293デフォルトの名無しさん
2025/04/05(土) 04:31:02.03ID:UUup59E1 >>292
トレイト境界は必要となる機能を足していくイメージで使うから+がしっくり来るよ
トレイト境界は必要となる機能を足していくイメージで使うから+がしっくり来るよ
294デフォルトの名無しさん
2025/04/05(土) 09:21:38.69ID:7yyM+PYz +はor
*はand
これが基本
traitA * traitB は traitAが実装されている=1 traitBが実装されている=1 と言う時だけ 1(true)
だからこれが正しい
トレイト境界だと表現が矛盾している
+だと traitAもしくはtraitBでtrueなのでやはりベン図的な境界ではありえない
*はand
これが基本
traitA * traitB は traitAが実装されている=1 traitBが実装されている=1 と言う時だけ 1(true)
だからこれが正しい
トレイト境界だと表現が矛盾している
+だと traitAもしくはtraitBでtrueなのでやはりベン図的な境界ではありえない
295デフォルトの名無しさん
2025/04/05(土) 09:25:04.62ID:7yyM+PYz トレイト制約なら+がしっくりくる
条件がtraitAに加えてtraitBとなるので常識的だと思う
条件がtraitAに加えてtraitBとなるので常識的だと思う
296デフォルトの名無しさん
2025/04/05(土) 09:31:25.64ID:UUup59E1297デフォルトの名無しさん
2025/04/05(土) 09:33:43.02ID:7yyM+PYz トレイト境界なんて変な言葉使ってるけど実際は集合論的な境界とはかけ離れている
298デフォルトの名無しさん
2025/04/05(土) 09:37:39.22ID:UUup59E1 型パラメータTを使う場合でも同じ
例えば型Tをデバッグ表示したくなったら
T: Trait1+ Trait2 既存のここへ
デバッグ機能も使えるように足す
T: Trait1+ Trait2 + Debug
制約なんて発想はどこにもないよ
例えば型Tをデバッグ表示したくなったら
T: Trait1+ Trait2 既存のここへ
デバッグ機能も使えるように足す
T: Trait1+ Trait2 + Debug
制約なんて発想はどこにもないよ
299デフォルトの名無しさん
2025/04/05(土) 09:59:12.29ID:7yyM+PYz trait境界がベン図的であると言うのはただの勘違いである
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【高市速報】中国、最後通牒 [308389511]
- 好きなAV女優が倉本すみれ、柏木こなつ、松本いちかだが
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 東京の家賃安くね?
