Rust part17

■ このスレッドは過去ログ倉庫に格納されています
2022/10/06(木) 22:43:13.96ID:Re0G7B20
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※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 part16
2022/11/25(金) 13:21:30.46ID:D+kphDHJ
>アフィカス
まだ気が早いけどワッチョイを使えば多少は防げるもんなの?
570デフォルトの名無しさん
垢版 |
2022/11/25(金) 13:31:54.44ID:j44SSeWl
>>567
be setだから下だろバカ
2022/11/25(金) 14:44:15.84ID:wOyL9/CI
>>565
???
>>560のどこにhelper要素ある?

マウントばかり取ろうとする役立たずの無能を底辺に組み込みたいというのは肯定するけど、
>>560がお人好しhelperというのは否定するわ。
572デフォルトの名無しさん
垢版 |
2022/11/25(金) 14:52:48.53ID:NT6Ragjt
>>570
set A B (SVOO)…(ア)

A := B

set B to A (SVOC)…(イ)

A := B

(ア)は以下2通りの受動態に書き換えられる
A is set B …(1)
B is set to A …(2) (O2を主語にする場合O1の前にtoを補う必要がある)

(イ)は以下1通りの受動態に書き換えられる
B is set to A …(3)

(1)と(2)(3)ではA, Bの並びが逆になるから「be setだから下だろバカ」は間違いで、「be set toだから上だろバカ」が正しいように思える

しかしGoogle翻訳だと、
The variable is set to "バカ"
を英語に翻訳すると、
変数は「バカ」に設定されています
に、
"バカ" is set to The variable
を英語に翻訳するとこちらも、
変数に「バカ」を設定
に、
なるんだよなぁ…
不思議!
2022/11/25(金) 15:02:34.88ID:TzWxad5d
>>567
https://www.enago.jp/academy/set-to-be/

In the first case, gamma is set to 1.
で「最初のケースの場合、gammma は 1 に設定される」
みたいな意味らしいから、
I set X to 1.
は、「私は X を 1 に設定した」のような意味になることが有る。
一方、
I assign 1 to X.
は、「Xに1を代入する」の意味になる。
to Y と書いたとき、Y が代入先(dest)なのか、代入元(src)なのかは、
動詞や文脈によって変わってきてしまうのかも知れない。
assgin の場合は、assign src to dest に固定されているはず。
set の場合は、文脈によってどちらも有りうるかも知れない。
2022/11/25(金) 15:04:42.52ID:RgnS8UuF
>>569
ならない。IDコロコロがワッチョイコロコロになるだけだし常識ある人が離れる分悪化する可能性が高い
奴の主張によればワッチョイが違うから別人だ!になるのは明らかだし、それで盲目信者の巣窟になった
スレをいくつも見てきた
てかアマゾンや一部のブログを弾いているくせにアフィYoutbeが野放しになっている時点で・・・
2022/11/25(金) 15:06:25.98ID:v7fq4Pg1
定数をバインドする式を定数式と呼ぶってことだろ
公式原文も色々怪しくて論議があるから、脳内で意訳しとけ
576デフォルトの名無しさん
垢版 |
2022/11/25(金) 15:08:01.76ID:TzWxad5d
>>573
[続き]
I set X to 1.
とかけて、Xがdest(式の左辺)、1が src(式の右辺)であり、
X = 1;
の意味になる。
「The last difference is that constants may be set only to a constant expression,
not the result of a function call or any other value that could only be computed at runtime.」
の意味は、定数の右辺は、定数式、つまり、
constants = constant expression.
だけが許されて、
consttants = f(・・・);
などの、実行時に計算するしか結果が分からないような値は、右辺に来ることは無い、
という意味になるようだ。
2022/11/25(金) 15:13:16.78ID:TzWxad5d
>>572
>set B to A (SVOC)…(イ)
>も
>A := B
set以外の動詞の英語の基本原則からするとその通りで、
動詞 A B

動詞 B to A
は多くの場合、同じような意味になることが多い。
ところが、set の場合、話がややこしいらしく、
実は、
set B to 1
は、
B := 1
の意味になるらしい。
setだけが原則を破って必ず逆になっているのか、それとも、
文脈によって変わってきてしまうのかは不明。
2022/11/25(金) 15:21:16.45ID:HP+HUenZ
>>575
バインドの主従が逆じゃね
定数は定数式しかバインドできない
const文の左辺が定数、右辺が定数式
2022/11/25(金) 15:22:45.12ID:TzWxad5d
>>577
[補足]
(例)
He gave me a chocolate. (1)
He gave a chocolate to me. (2)
は、原則的な意味としては同じ。ただし、meの様な代名詞の場合(1)で書くとは
聞いたことがある。
I assing 1 to X.
I assing X 1.
も同じ意味になるはず。
ところが、
I set X to 1.
は言えても、
I set 1 X.
は多分言えないような気がする。
英語は難しい。
2022/11/25(金) 15:26:46.87ID:8N49L/hO
力説中のところ申し訳ありませんが、大事なことだと思いますので。

日本語訳の方には、ページごとに原文の特定バージョンへのリンクがあると良いと思いました。

理由
>>541が持って来た原文が現在の原文
The last difference is that constants may be set only to a constant expression, not the result of a value that could only be computed at runtime.
と違うので、はて?と思いHistoryを調べました。

Committed on Jul 24, 2021
https://github.com/rust-lang/book/commit/05d9c4c2312a6542f792492d17a62f79ad6dfd7b#diff-babf686b8b57cc7dd67fd06d087303fe92115f8a5d9fd5dca7cef8645a25bb58R104

日本語版のトップに書いてある日付よりも多少ラグがありました。
https://doc.rust-jp.rs/book-ja/title-page.html
>このテキストのこの版ではRust 1.58(2022年1月13日リリース)かそれ以降が使われていることを前提にしています。

探すのは難しいことではありませんが、手間と言えば手間で、せっかくのcontributeの意欲を削ぎかねません。
2022/11/25(金) 15:35:57.85ID:TzWxad5d
>>579
どこの話なのかと思っていたが、
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html
に書いてあるものだった。
こうなっているから、>>576の解釈で有っている気がする :

The last difference is that constants may be set only to a constant expression, not the result of a value that could only be computed at runtime.

Here’s an example of a constant declaration:

const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
2022/11/25(金) 15:41:09.30ID:TzWxad5d
>>581
[補足]
>const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
>The constant’s name is THREE_HOURS_IN_SECONDS and
>its value is set to the result of multiplying 60 (the number of seconds
>in a minute) by 60 (the number of minutes in an hour) by 3
>(the number of hours we want to count in this program).
と書いてあり、能動態に直すと
XXX set its value to 60 * 60 * 3.
となるから、
set A to B

A = B
の意味を伝達しようとしていると考えられて、裏づけが取れた。
2022/11/25(金) 15:45:19.49ID:xaW1nBc4
>>581,582
混乱の極みを見事に体現してる。原文見た方が良いでしょ?
2022/11/25(金) 15:55:04.06ID:THLf878Z
>>581,582
昨日の1.5倍の人か100倍の人かわかんないけど、原文見たら0.1倍だったね。
2022/11/25(金) 16:13:51.74ID:scn2u8sN
プログラム関連で出てくる単語とか限られているから、慣れたら英語でも速く読めるからね。
2022/11/25(金) 16:53:44.00ID:BP7ibfc5
>>563
いや、全くないが
「読むに値しない」とまで言い切ったからにはどんなすごい名訳が出てくるんかと気になっただけ
2022/11/25(金) 17:08:35.12ID:N+Zpejdn
>>586
×「読むに値しない」→名訳が出てくる
〇「読むに値しない」→原文を読む
2022/11/25(金) 17:37:57.21ID:XtySliSs
The Book日本語版、issueやPRが放置気味
https://github.com/rust-lang-ja/book-ja/issues
https://github.com/rust-lang-ja/book-ja/pulls
4人でメンテナンス?頑張ってる方かな?
https://github.com/orgs/rust-lang-ja/people
2022/11/25(金) 18:51:27.43ID:bTqKud61
日本語かどうかの話とちょっと逸れるけど
MDNのドキュメント初めて見たとき感動したな
親切というか見やすいというか

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/from
↑これは今てけとーにクリックして開いたページだけど
・最初の一行目付近で概要は十分掴める
・実行して試せる
・解説や例が充実

こーいうレベルまでまとまってると捗るよね
2022/11/25(金) 18:55:07.58ID:HP+HUenZ
>>589
標準ライブラリのrustdocとかこんな感じでは
2022/11/25(金) 19:51:17.64ID:6Yi+j4c1
英語できないやつはRust禁止でいいだろ
2022/11/25(金) 20:14:50.25ID:HZEumDr5
>>582
なるほど、なら

The last difference is that constants may be set only to a constant expression, not the result of a function call or any other value that could only be computed at runtime.



最後の違いは定数には関数呼び出しの結果や実行時に計算される値ではなく定数式のみを設定できる事である

くらいかな
593デフォルトの名無しさん
垢版 |
2022/11/25(金) 21:44:29.00ID:6OlwGlFl
日本語訳読んだだけで秒で間違いに気付ける箇所を指摘したつもりだったんだがw

そうならないのは>>534が書いてるように「定数」「定数式」「セットする」「値」あたりの意味を理解してないってことなんだよね
2022/11/25(金) 22:47:54.20ID:GlJDmObA
> 確かにいい訳ではないけど
用語以前に誤訳なわけだが
2022/11/25(金) 22:51:14.61ID:OHrntoLc
>>557
RangeFullやSinkがunit-like struct
structの中身は空でtrait implのみ

でもそういう用途よりもジェネリックと一緒に使って状態を型で表現して
状態ごとに呼べる関数を制限したいときに使われることが多い
struct NotActivated;
struct Active;
struct Expired;
struct License<State> {…}
impl<State> License<State> {…}
impl License<NotActivated> {…}
2022/11/25(金) 23:36:14.56ID:9EBigD0X
原文がちょっと不親切ではあるな
これはいい、これは駄目という例を
挙げてくれれば文とかはどうでもよくなるのに
2022/11/26(土) 07:16:42.40ID:PBcpo5Pj
さんざん他言語・多言語愛好者をこけにしておちょくり倒してヘイト集めまくって、
挙句の果てに寄ってたかって素人騙してたくせに、その歴史が消える訳ないだろ。
今度は被害者のふり。最近ちょっと大人しくして良い人ぶって許されたと思ったら大間違い。
2022/11/26(土) 09:45:44.06ID:jkgTkEQQ
ちょっと何言ってるのか分からない
599デフォルトの名無しさん
垢版 |
2022/11/26(土) 13:29:02.11ID:NN/Ee4C5
「定数は定数式にしかセットできません」だけならともかく
「定数は関数の呼び出しの結果にはセットできません」
「定数は実行時に評価される値にはセットできません」
と重ねてダメ押しされてるのに間違いに気づかないのは致命的すぎるわな
600デフォルトの名無しさん
垢版 |
2022/11/26(土) 21:14:12.05ID:WPAl7BZB
翻訳者の能力の問題もさることながら体制がダメなんだろ
601デフォルトの名無しさん
垢版 |
2022/11/26(土) 23:30:38.96ID:MK1npdNM
1コードブロックに3つもバグが埋め込まれて本番環境で不具合でてるのに中の人は誰も気づかない状態

恐ろしい
2022/11/26(土) 23:44:35.96ID:cbpgSLEO
>>592
「定数に定数式を設定」という言葉はsrcとdstがどっちなのかに曖昧さが残るので
「定数を定数式で初期化」または、
「定数に定数式を代入」
「定数=定数式のように初期化」
とはっきり書いたほうが分かり易い。
603デフォルトの名無しさん
垢版 |
2022/11/27(日) 02:00:12.48ID:PMZ9qEdk
日本語としてものすごく読みにくいとは思うが
どっちをどっちに設定するかという部分の曖昧さはないだろ
2022/11/27(日) 02:20:50.36ID:uyoA8rg1
タイムアウト時間を30秒に設定する
timeout_secondsに30を設定する
2022/11/27(日) 07:55:44.11ID:azI8+vf1
こんなところじゃなくて翻訳版bookのレポジトリで議論してきなよ
2022/11/27(日) 10:18:44.07ID:8gJa+XiI
個々人の生存戦略としてはそりゃ英語読めた方が良い

同意

コミュニティとしては裾野を広げるために各種言語のリソースは用意されてた方が良い

Rustコミュニティは英語に集中してリソース拡充してきている段階では?

翻訳版bookのコミュニティが、日本でのRustコミュニティとして中心的な位置を取りたいという野望でしょうか?
そんな求心力は無いと思いますが。

497: デフォルトの名無しさん sage 2022/11/24(木) 15:55:09.50 ID:rSYd8nrB
個々人の生存戦略としてはそりゃ英語読めた方が良いけど
コミュニティとしては裾野を広げるために各種言語のリソースは用意されてた方が良い
bookの翻訳が不十分なのは課題だが、だからといって翻訳の取り組み自体を否定するのは違うんじゃないの?
それとも英語等のハードルを越えた人間のみ触れるものであるべきという思想なのかな
607デフォルトの名無しさん
垢版 |
2022/11/27(日) 10:36:54.77ID:Zv27eWsM
>>604
「30秒にはタイムアウト時間を設定できる」とか言わんやろ
英語を誤訳したやつみたいに日本語ネイティブじゃないやつが誤訳する可能性でも考えてんの?
2022/11/27(日) 11:01:37.30ID:gXtPf0qn
>>606 日本でのRustコミュニティとして中心的な位置を取りたいという野望
>>607 日本語ネイティブじゃないやつ

えっ、この二つリンクしてるのか?
なんとか協会とか資格試験を作るんですか?
そんなことしたら乗っ取りじゃないですか!
英語原文主義者でも捨て置きならないぞ!
2022/11/27(日) 11:59:56.08ID:azI8+vf1
>>606
>>492にもあるがすでに翻訳も拡充していこうとしている
というかローカライズにリソース割くのやめたところで英語版の執筆ペースが速くなるわけでもなかろう
2022/11/27(日) 12:31:41.07ID:H/u9072G
>>609
翻訳版bookの中の人ですね。
本家公認だからって、日本人作のcrate等で活躍している人達を差し置いて
日本Rustコミュニティの中心見たいな態度はどうかと思うぞ。

605: デフォルトの名無しさん sage 2022/11/27(日) 07:55:44.11 ID:azI8+vf1
こんなところじゃなくて翻訳版bookのレポジトリで議論してきなよ
2022/11/27(日) 12:41:05.07ID:iW9ldzKP
>>ID:azI8+vf1
こんなところでリクルート活動してないで率先してガンガン品質向上しろよ

本家の代弁者見たいな顔するな。
説得力ゼロ
2022/11/27(日) 12:48:50.89ID:f1nHPrCO
クスクス
2022/11/27(日) 13:27:25.24ID:/KqYda7b
おれ、この気持ち共感できる
>日本人作のcrate等で活躍している人達を差し置いて

これだけは断固反対
>なんとか協会とか資格試験を作るんですか?

翻訳版book中の人は、やらないと誓約する必要がある
2022/11/27(日) 13:59:45.41ID:WnQW1xBa
翻訳議論スレ作れよ
2022/11/27(日) 14:35:21.35ID:azI8+vf1
>>610
ちょっと思い込みが激しすぎやしないですかね
こんなところで翻訳案議論しても何の役にも立たないからせめてコントリビューションして来なさいよという意味
2022/11/27(日) 14:44:21.27ID:obDxoM1f
横失礼します。
>>613そのものは共感に値します。
>>615さんも同感ですよね?
2022/11/27(日) 15:01:53.97ID:uyoA8rg1
低レベルな内容ほど議論が紛糾する
英語ではbikesheddingと言います
2022/11/27(日) 15:41:13.95ID:Cs02dWTs
>>595
どうもありがとう
なんかスレが殺伐としてるね
2022/11/27(日) 16:55:26.99ID:uHmuK07x
>>607
30秒などの具体的な数値が有る場合には誤解は無い。ところが、
「XをYに設定する。」と書いた場合、
X=Y
Y=X
のどちらにも解釈可能。
620デフォルトの名無しさん
垢版 |
2022/11/27(日) 17:09:13.26ID:N296u3Hi
>>619
「XにはYを設定できる」や「XにはYのみ設定できる」という文がY = Xの意味にとれるのか?

日本語ネイティブじゃない人には分かりにくいというのなら理解できなくもない
2022/11/27(日) 17:16:08.15ID:TRua3A2I
>>620
>>530はそのどれでもなくて「XはYにしかセットできない」の形式だけど
これはどう思う?
2022/11/27(日) 17:17:31.45ID:F7pPowDS
怪しい部分も大半は文脈と照らし合わせつつコード読めば理解できるレベルの翻訳なのに一々文句付けるぐらいなら翻訳に参加した方が早いのでは?としか思わない
623デフォルトの名無しさん
垢版 |
2022/11/27(日) 17:20:04.83ID:ZSA0r6oY
まあそんな些細なことよりさ
項目が抜けてるところに<未翻訳の項目があります>って表示したら、かなり親切になるんじゃないかな
624デフォルトの名無しさん
垢版 |
2022/11/27(日) 17:26:26.85ID:97SCWnfr
>>621
どう思うも何も>>530はダメだろ
間違った逆の意味にしか取れないよ
そこに異論がある人はいなくね?
2022/11/27(日) 17:29:51.04ID:uHmuK07x
>>620
日本語訳では、「定数は定数式にしかセットできない」と書いてあるので、
定数=定数式 (1)
定数式=定数 (2)
のどちらにも解釈可能。
しかし、原文読むと正しいのは、(1)。
626デフォルトの名無しさん
垢版 |
2022/11/27(日) 17:32:52.38ID:BVKfKgFe
>>622
ちゃんと読もうとすればほぼ原文全部読まないといけない品質だぞ
あの日本語訳に飛びつくやつがそんなことするとでも思ってるの?
2022/11/27(日) 17:33:05.29ID:lJvzY49o
google翻訳にかけたらそうなったんだから、しょうがないだろ
という事では
628デフォルトの名無しさん
垢版 |
2022/11/27(日) 17:47:05.67ID:UmH2UGTE
>>625
定数や式についての知識が全くない人か
日本語ネイティブじゃない人でなければ
(1)の解釈は無理
2022/11/27(日) 17:58:03.70ID:Tzlpv0SL
>>621
>>592 の話じゃないのか?
なぜ今更 >>530 の話なんてしてるんだ?
630デフォルトの名無しさん
垢版 |
2022/11/27(日) 18:01:08.13ID:AOVlF7rL
>>627
ところがgoogle翻訳のほうがマシな場合も多々あるんだよこれが
2022/11/27(日) 18:48:05.90ID:WjtNHhGH
ざっと見た感じこの流れが気になる。こんなの秒で同意できるのに。

613: デフォルトの名無しさん sage 2022/11/27(日) 13:27:25.24 ID:/KqYda7b
おれ、この気持ち共感できる
>日本人作のcrate等で活躍している人達を差し置いて

これだけは断固反対
>なんとか協会とか資格試験を作るんですか?

翻訳版book中の人は、やらないと誓約する必要がある

615: デフォルトの名無しさん sage 2022/11/27(日) 14:35:21.35 ID:azI8+vf1
>>610
ちょっと思い込みが激しすぎやしないですかね
こんなところで翻訳案議論しても何の役にも立たないからせめてコントリビューションして来なさいよという意味

616: デフォルトの名無しさん sage 2022/11/27(日) 14:44:21.27 ID:obDxoM1f
横失礼します。
>>613そのものは共感に値します。
>>615さんも同感ですよね?
2022/11/27(日) 18:52:53.78ID:WnQW1xBa
翻訳の話題NG
想像以上の闇がありそう
2022/11/27(日) 19:05:09.68ID:vnIlphb/
今の状態でいきなり協会が立ち上がったら遺恨を残すだけ。
2022/11/27(日) 19:25:30.10ID:oBBhjDqK
てか現状の雑翻訳の張本人=英語マウント君の可能性すらある
2022/11/27(日) 20:48:36.17ID:Bc2lJjRX
rust-jpあたりに私怨ある人が盛り上がってる感じかな
お大事に
2022/11/27(日) 21:42:32.15ID:lFtjfrKw
書いてもないことを勝手に読み取って燃え上がるタイプっぽいからいろいろ大変そうだね…
637デフォルトの名無しさん
垢版 |
2022/11/27(日) 21:46:47.14ID:ZNWbm5aC
次スレのテンプレから
日本語訳へのリンクは削除で
>>980
2022/11/27(日) 22:01:49.36ID:WnQW1xBa
翻訳の話題禁止も追加しといてくれ
639デフォルトの名無しさん
垢版 |
2022/11/27(日) 22:07:24.37ID:berpMXHg
協会立ち上げるならRust検定も必要だろね。
2022/11/27(日) 23:00:31.47ID:N2XeKp1i
協会立ち上がったらRustの保証範囲内で国内法損害賠償に応相談?
641デフォルトの名無しさん
垢版 |
2022/11/27(日) 23:11:10.98ID:berpMXHg
プログラムに起因する損害を全て保証すれば、Rustの名声も高まるだろうな。
642デフォルトの名無しさん
垢版 |
2022/11/27(日) 23:12:33.38ID:berpMXHg
Rustにおいてコンパイルを通るとは、すなわちバグが無いと保障されること。
と宣伝してたからな。
643デフォルトの名無しさん
垢版 |
2022/11/27(日) 23:14:15.63ID:berpMXHg
Rustサムライという映画があったような。
2022/11/27(日) 23:29:35.46ID:NsWs/3+t
rustの勉強に前に英語の勉強を
645デフォルトの名無しさん
垢版 |
2022/11/27(日) 23:44:50.88ID:berpMXHg
日本が世界に誇るRust言語。
646デフォルトの名無しさん
垢版 |
2022/11/28(月) 08:14:55.76ID:u/1oLUrZ
リンクトリストやグラフ構造が地獄という話題に戻ろう
GC無し言語のRuneはrelationという機能で解決してて素晴らしいのではないでしょうか?
有向グラフのコード例↓
https://github.com/google/rune/blob/main/doc/rune4python.md#the-directed-graph-example
2022/11/28(月) 09:39:33.33ID:MVujw8Ga
>>646
その言語が何を保証しているのか解説よろ
2022/11/28(月) 09:52:18.49ID:sJQkfuAF
>>643
ググったら何かいそうなのww
649デフォルトの名無しさん
垢版 |
2022/11/28(月) 11:16:45.67ID:BYOiineU
>>595
このジェネリック使った静的チェック付きのStateパターンは他の言語では見ないんだがRustと同じように実装できるんだろうか?
2022/11/28(月) 11:26:51.11ID:VpBGmQkI
>>646,649
保証がないなら無意味なのでは
2022/11/28(月) 11:48:49.74ID:ysUCvAXy
>>649
C++で言うところのタグディスパッチ
2022/11/28(月) 11:51:10.38ID:cwhW39fK
>>650
保証の有無は分からないんだけど、
仮になかったとしても、rustのunsafeと同じでプログラマの責任で自由にできる部分があるのは意味のあることでは
653デフォルトの名無しさん
垢版 |
2022/11/28(月) 12:37:21.67ID:B8Z/qDA7
>>651
タグディスパッチの場合はある状態がサポートしない操作もオーバーロードできるように書かないとダメじゃない?
それだと他の言語の一般的なStateパターンの実装方法と基本的には同じ
2022/11/28(月) 13:02:49.16ID:wvJe/vpd
>>653
一般的なStateパターンではなく、静的チェック付きのStateパターンだと何が保証されるのですか?
655デフォルトの名無しさん
垢版 |
2022/11/28(月) 14:37:02.92ID:goiShTMa
>>654
ある状態でサポートされてない操作を呼び出す(可能性のある)コードはコンパイル通らない
ジェネリックを使わない形の静的チェック付きStateパターン実装は他言語でもよく見るよ
2022/11/28(月) 15:00:23.08ID:pom2iae5
>>655 全体的にちょっと回りくどい表現で理解できません。

>>655は、Rustではコンパイルが通れば実行時エラーが起きない事が保証される、
という事を言っているのでしょうか?
(他の言語との比較ではなく)
2022/11/28(月) 15:00:27.21ID:pom2iae5
>>655 全体的にちょっと回りくどい表現で理解できません。

>>655は、Rustではコンパイルが通れば実行時エラーが起きない事が保証される、
という事を言っているのでしょうか?
(他の言語との比較ではなく)
2022/11/28(月) 15:01:45.50ID:pom2iae5
すみません。マウスのチャタリングかな。。
659デフォルトの名無しさん
垢版 |
2022/11/28(月) 15:23:59.23ID:mX/IntZU
>>656
Stateパターンに明るくないようならthe bookに2種類のStateパターンの実装が出てるので読んでみて
https://doc.rust-lang.org/book/ch17-03-oo-design-patterns.html

1つめの実装はある状態でサポートされない操作が呼び出されたら何もせずselfを返したり空文字列を返したりしてる
2つめの実装はある状態でサポートされない操作を呼び出すコードが有ればコンパイルエラー

>>595のやり方は2つめの実装をジェネリックとmarket typeを使ってPost<Draft>みたいな形にするもの
2022/11/28(月) 15:38:39.29ID:26iHAu1B
Modern C++ Design で Policy と呼ばれているパターンに近くない?
基本的な言語機能が違うので単純に比較はできないかもしれないけど。
2022/11/28(月) 16:45:22.66ID:gmgHbWWJ
>>659 ありがとうございます。おかげ様で理解が深まった気がします。

>>655が言っていることから理解したこと
静的"型"チェックの出来る言語なら適切なStateパターン実装を用いれば、
各状態に対応した型に実装されていない操作をコンパイルエラーで検出できる。

>>655が言及を意図的に避けている単語
保証
2022/11/28(月) 17:30:33.44ID:CGc28UZt
ん〜、Rustで保証を持ち出さないんだったら、>>649=653?は何をマウントしようとしたのかすら不明
あと655は別人じゃね?
2022/11/28(月) 17:41:27.83ID:/aP8eVMy
話の流れとは全く関係無いが、
twitterでは、rustで検索するとゲームが多数を占めてしまうので問題だが、
rustlang lang:ja
で検索すると割りと上手く行く。
2022/11/28(月) 17:53:52.03ID:x/Rrw6wy
ググったら一発で出てきた

doc.rust-jp.rs/rust-nomicon-ja/
>また、様々な種類の安全性や保証についてもたくさん説明します。
2022/11/28(月) 18:00:25.08ID:JOAT4gaO
>rust-jpあたりに私怨ある人
こんなやついるのか?保証に敏感な人はrust-jpの何を拗らせたの?濡れ衣でしょ
2022/11/28(月) 18:15:54.07ID:hRO2AtDN
言及する価値無し
2022/11/28(月) 18:19:33.94ID:9jvbe+te
誰もYesかNoか答えない(含む自分)5chアンケート調査

Rustではコンパイルが通れば実行時エラーが起きない事が保証される

(ちなみに拗らせてないしrustjpに私怨ありません. >>635のデマでは)
2022/11/28(月) 18:33:51.31ID:LDNjf6uN
実行時エラーを心配するって、どういうレベルの人たちだよ
2022/11/28(月) 18:35:25.02ID:kKtU7ET1
「Rustではコンパイルが通れば実行時エラーが起きない事が保証される」
これ自体が大嘘だろう?I/Oのある呼び出しは必ずRuntimeパニックの可能性があるし、実行時エラーが起きない事が保証されるのは
一部の実行時エラー(主にメモリー関連、例:配列インデックス範囲外など)であり、unsafeでもチェックが働く部分を強調してるだけ
■ このスレッドは過去ログ倉庫に格納されています