公式
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:NJwebgj2228デフォルトの名無しさん
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境界がベン図的であると言うのはただの勘違いである
300デフォルトの名無しさん
2025/04/05(土) 10:05:02.72ID:7yyM+PYz A or Bはtypsscriptのユニオン型でそっちは |でつなげている
301デフォルトの名無しさん
2025/04/05(土) 11:05:30.39ID:FmPOHx1d 「境界」と書かれてる本は読むに値しない
という事だけはよくわかった
という事だけはよくわかった
302デフォルトの名無しさん
2025/04/05(土) 11:17:04.10ID:in25MGhG 可能なら英語の原文を読む方がいいのは間違いない
bound⇔制約みたいな謎対訳を意識しなくて済む
洋書は高いけどね
bound⇔制約みたいな謎対訳を意識しなくて済む
洋書は高いけどね
303デフォルトの名無しさん
2025/04/05(土) 11:17:57.15ID:r2N1m9n9 >>301
わかりやすいリトマス試験紙だよね
わかりやすいリトマス試験紙だよね
304デフォルトの名無しさん
2025/04/05(土) 11:19:18.81ID:/EY1L6NJ >>301
境界はどうでもいいが
trait boundsの日本語訳をトレイト制約としてしまうとRust公式リファレンスのあちこちで困ったことになることが今回のこのスレでの調査で判明した
少なくともトレイト制約と訳してはいけないことが明白になった
境界はどうでもいいが
trait boundsの日本語訳をトレイト制約としてしまうとRust公式リファレンスのあちこちで困ったことになることが今回のこのスレでの調査で判明した
少なくともトレイト制約と訳してはいけないことが明白になった
305デフォルトの名無しさん
2025/04/05(土) 11:58:20.02ID:fzOXtcwa たとえばcobolをjavaに直訳できない問題って
新しい要素を追加した方に原因があるのか?
新しい要素を追加した方に原因があるのか?
306デフォルトの名無しさん
2025/04/05(土) 13:46:49.67ID:Ur9Vw4Z1307デフォルトの名無しさん
2025/04/05(土) 13:48:18.46ID:Ur9Vw4Z1308デフォルトの名無しさん
2025/04/05(土) 14:22:39.14ID:fzOXtcwa309デフォルトの名無しさん
2025/04/05(土) 14:29:32.69ID:7yyM+PYz >>307
日付変わったらid変わるんだよ…馬鹿なのかなあ?
日付変わったらid変わるんだよ…馬鹿なのかなあ?
310デフォルトの名無しさん
2025/04/05(土) 14:30:52.53ID:7yyM+PYz と思ったけど同じ日だな
5chがおかしいんだろ
5chがおかしいんだろ
311デフォルトの名無しさん
2025/04/05(土) 21:54:28.18ID:kbjS/M49 >>302
洋書のほうが断然安いだろ
洋書のほうが断然安いだろ
312デフォルトの名無しさん
2025/04/05(土) 22:12:55.39ID:+mdv7JT9 ものによるよ
具体的に比較せねば
具体的に比較せねば
313デフォルトの名無しさん
2025/04/05(土) 22:23:17.94ID:JwBnCnrW 日本で洋書を買うなら輸入品だもの。
円安の情勢で高くなるのは仕方ないよ。
円安の情勢で高くなるのは仕方ないよ。
314デフォルトの名無しさん
2025/04/05(土) 22:38:25.51ID:gU7LWJwv TraitやTrait boundsが制約だと思ったんだろな
特性や特性の範囲を示しているだけで
必ずしも制限に使われると限らないのだが
特性や特性の範囲を示しているだけで
必ずしも制限に使われると限らないのだが
315デフォルトの名無しさん
2025/04/05(土) 22:41:49.78ID:+mdv7JT9 オライリーならサブスクで洋書PDF読み放題があったような
316デフォルトの名無しさん
2025/04/05(土) 22:54:56.00ID:UT8OnkGd Lifetime boundは?
317デフォルトの名無しさん
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 {}
>>let x: &dyn TraitAB = &t1;
その合成したトレイト境界によるトレイトオブジェクトを、
一昨日リリースのRust 1.86からこのようにスーパートレイトへアップキャストできるようになったという理解でいいんだよな。
let xa: &dyn TraitA = x;
let xb: &dyn TraitB = x;
結局この+によるトレイト境界の合成も、制約したと考えるより、両方の特性(機能)を持たせたと考える方が理に適ってるよな
>>// トレイト境界の合成
>>trait TraitAB: TraitA + TraitB {}
318デフォルトの名無しさん
2025/04/06(日) 01:02:23.74ID:upKL4j/Q 境界の合成ならorでしょう?なんでandになるんだよ
319デフォルトの名無しさん
2025/04/06(日) 01:05:52.29ID:1+4HzuoN その特性を持つか持たないか
両方の特性を持つようになるから'+'がふさわしい
両方の特性を持つようになるから'+'がふさわしい
320デフォルトの名無しさん
2025/04/06(日) 01:12:53.80ID:upKL4j/Q 質問
トレイト境界と言う言葉があまりしっくりきません
chapGPTの答え
「トレイト境界(trait bound)」っていう言葉、ちょっとピンとこないというのは自然な感覚です。
むしろ「型に課す条件」とか「型パラメータの制約」というようなイメージの方が、Rustの使い方としてもしっくりくるかもしれませんね。
「trait bound」という言葉は英語の「bound(拘束、制約、限界)」の訳で、おそらく「型に制約を課す」という意味から来ています。
ただ、日本語で「境界」というと、物理的な境目やある範囲をイメージしやすく、それが逆にわかりづらくしているかもしれません。
しっくりくる言い換え候補いくつか
表現 ニュアンス
トレイト条件 Tに必要な条件、論理的に「T ∈ Debugを満たす型の集合」
トレイト制約 Tにかかる制限。構文的にも意味的にも合ってる
トレイト必須要件 必須で満たさなければならない要件
実装条件 implが意味する「Tは〜を実装していないといけない」
実装制限 実装可能な範囲を制限する
トレイト境界と言う言葉があまりしっくりきません
chapGPTの答え
「トレイト境界(trait bound)」っていう言葉、ちょっとピンとこないというのは自然な感覚です。
むしろ「型に課す条件」とか「型パラメータの制約」というようなイメージの方が、Rustの使い方としてもしっくりくるかもしれませんね。
「trait bound」という言葉は英語の「bound(拘束、制約、限界)」の訳で、おそらく「型に制約を課す」という意味から来ています。
ただ、日本語で「境界」というと、物理的な境目やある範囲をイメージしやすく、それが逆にわかりづらくしているかもしれません。
しっくりくる言い換え候補いくつか
表現 ニュアンス
トレイト条件 Tに必要な条件、論理的に「T ∈ Debugを満たす型の集合」
トレイト制約 Tにかかる制限。構文的にも意味的にも合ってる
トレイト必須要件 必須で満たさなければならない要件
実装条件 implが意味する「Tは〜を実装していないといけない」
実装制限 実装可能な範囲を制限する
321デフォルトの名無しさん
2025/04/06(日) 01:15:32.61ID:upKL4j/Q トレイト境界は誤訳で言いたいならトレイトバウンドでいい
これがFA
これがFA
322デフォルトの名無しさん
2025/04/06(日) 01:23:12.69ID:upKL4j/Q 欧米でのboundと日本の境界は必ずしも同じ意味ではない
そもそもの単語の概念が違う
boundの制約部分の意味合いを翻訳者が取れずにboundの一番目に来る訳語の境界を当ててしまった
これが結論
そもそもの単語の概念が違う
boundの制約部分の意味合いを翻訳者が取れずにboundの一番目に来る訳語の境界を当ててしまった
これが結論
323デフォルトの名無しさん
2025/04/06(日) 02:18:12.24ID:n88cNHgB うっかりミスをしただけなら喧嘩にはならんがな
原作を改変することは許されない的なルールを守る意志があるだろ
原作を改変することは許されない的なルールを守る意志があるだろ
324デフォルトの名無しさん
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
輸入だとしてもなんでこんな値段になるんだ
https://www.rustinaction.com
https://www.manning.com/books/rust-in-action
高いな
https://www.ama損.co.jp/dp/1617294551
輸入だとしてもなんでこんな値段になるんだ
325デフォルトの名無しさん
2025/04/06(日) 08:58:25.67ID:2WEREMbe つまらん言い争いする前にとっとと Rust Book最新版翻訳して、好きな方の用語に統一しとけ。
最新版の翻訳も無いのに日本語和訳とかゴミみたいな話しても無駄だろ。
最新版の翻訳も無いのに日本語和訳とかゴミみたいな話しても無駄だろ。
326デフォルトの名無しさん
2025/04/06(日) 14:12:55.00ID:n88cNHgB 無駄は利益でも損失でもない
つまり有益でも有害でもない
つまり有益でも有害でもない
327デフォルトの名無しさん
2025/04/06(日) 14:48:28.98ID:MSyTNjpB ゴミ翻訳が何万人ものユーザーに悪影響を与えてるんだから単なる無駄どころかガチ害悪
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 政府債務(対GDP比)2025年版発表 ついにあの国がワースト1位になってしまう [884040186]
- 千晴のおちんちん舐めたらめかぶの味がした🤮
- 近所にびっくりドンキーがないんだけど!!!
- 【朗報】高市首相に文春砲を放った文春&新潮、無事に叩かれる
- 高市早苗「長期金利なんかよりも日本が成長することのほうが大事」 [834922174]
- 【悲報】高市「マクロンさあ!近平G7に呼ばずハミゴにしちゃってよ!😡」【小学生内閣】 [359965264]
