1 名前:デフォルトの名無しさん [2024/02/23(金) 17:37:52.13 ID:CheDQupm.net] 公式 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 part22 https://mevius.5ch.net/test/read.cgi/tech/1705760500/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.2ch.net/test/read.cgi/tech/1514107621/
37 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:18:05.49 ID:Y4TucXFt.net] どんな言語にもマイナス面がありRustにもある しかしマイナス面を上回る莫大なメリットがRustにはいくつもあるからIT業界をあげてRustを支援&採用している 揚げ足取りでRustを叩きたいだけの人はアンチスレへ行け
38 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:23:45.23 ID:/3HpHAOM.net] >>36 知らないのかもしれないけど今のPythonはどちらもできる
39 名前:デフォルトの名無しさん [2024/02/25(日) 13:29:34.11 ID:cAT3nYdz.net] >>35 どんな理由であれ複雑なのはマイナスだろ 複雑なのがプラスだってんならC++かbrainfuckやれよ
40 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:33:19.74 ID:m/LZ7YZH.net] 漸進的型付けは静的片付けと動的型付けのどちらも出来るわけではなくて漸進的型付けという別物だと解釈すべきだと思うよ。
41 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:35:59.16 ID:m/LZ7YZH.net] >>39 能力が同じなら複雑さはマイナスだが複雑にしてでもそれを上回るメリットが得られることがあるという話だということも理解できないの? トレードオフ
42 名前:デフォルトの名無しさん [2024/02/25(日) 13:47:25.26 ID:cAT3nYdz.net] >>41 >>35 はそんなこと書いてないぞ > 「僕は基本Traitがよくわからない => それはRustのマイナス面」 > この発想が幼稚さがわからないのかな? だぞ。勝手に自分の文脈を他の人のレスに上乗せして書いてない解釈を押し付けるなよガイジ
43 名前:デフォルトの名無しさん [2024/02/25(日) 13:51:18.30 ID:qsle6rXj.net] Rustで有名アルゴリズムに挑戦 第16回 Rustで機械学習に挑戦 - k近傍法でアヤメの分類をしよう https://news.mynavi.jp/techplus/article/rustalgorithm-16/ 共同作戦で壊滅したマルウェア「Qakbot」復活、米国は犯行グループを逮捕できず https://news.mynavi.jp/techplus/article/20240225-2885670/ 悪意あるPythonパッケージを2つ発見、DLLサイドローディング技術悪用 https://news.mynavi.jp/techplus/article/20240225-2889952/ 充電式バイブレータからマルウェア検出、USB充電デバイスに注意 https://news.mynavi.jp/techplus/article/20240224-2889949/
44 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:53:04.35 ID:Y4TucXFt.net] ここはRustユーザが集うRustスレ 叩きたいだけのキチガイはアンチスレへ行け
45 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 13:56:41.04 ID:Y4TucXFt.net] >>43 なるほど https://news.mynavi.jp/techplus/article/rustalgorithm-16/images/001.jpg
46 名前:デフォルトの名無しさん [2024/02/25(日) 14:00:42.93 ID:qsle6rXj.net] C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と https://www.publickey1.jp/blog/22/ccarbon_languagegooglec.html
47 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:05:55.86 ID:gx/ep+tD.net] >>37 嘘はいかんよ Rustにはメリットなし、がIT業界の総意 Adaの方が上 最新版IEEE調査Jobs https://i.imgur.com/Z8hI9C6.png
48 名前:デフォルトの名無しさん [2024/02/25(日) 14:10:17.03 ID:cAT3nYdz.net] Jobで判断するのはちょっとなあ Jobの要件にするのってその言語さえ出来れば良い人を探す時じゃん Rustってまだそのフェーズではないんだよな
49 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:19:17.62 ID:2NfnhAyO.net] >>48 言うてメインはOSS用だよね 大手はちょっとばかり資金援助してレバレッジ効かせようと宣伝して 2021-2022がRustハイプのピークだったんだけど真水のJobは稀
50 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:25:08.84 ID:zbRFIfV6.net] >>46 Carbonはその公式FAQに明記してるように Rustを使える状況ならRustを使ったほうがいいという立ち位置 Carbonは既存のC++遺産メンテ用
51 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:32:26.24 ID:is3AzB4D.net] >>49 次々とRust製へ変わっていってる リソース面すなわち経済的にもエコ的にもRustが有利なので今後次々とRust製へ置き換わっていく ソース >【クラウド世界トップシェアAWS】 >https://japan.zdnet.com/article/35183866/ >Rustで構築されたAWSサービスの例としては、 >コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、 >「Amazоn Simple Storage Service(S3)」、 >「Аmazоn Elastic Compute Cloud(EC2)」、 >コンテンツ配信ネットワーク「Аmazоn CloudFront」、 >LinuxベースのコンテナーOS「Bottlerocket」などがある。 >【CDN世界トップシェアClоudflare】 >https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html >CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、 >同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。
52 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:38:19.37 ID:+AfYZ5AE.net] Rustは知らず知らずのうちに技術的負債を量産しそうな気配だな Rustは既に違法建築だから 前スレで言われる矮小化オンパレードで笑ったw 前スレ https://mevius.5ch.net/test/read.cgi/tech/1705760500/9 >>https://mevius.5ch.net/test/read.cgi/tech/1692105879/990 一応知らない人のために書いておくけど 「Rustがunsafeコード一切なしでメモリアンセーフ」な事が判明してから半年近く経ってる 特定の機能導入のタイミングでコードが発見されたけど、 「Rustの仕様バグ」だと認識されていて直せない >>4 そんな事並べて理解したつもりでも、分からないと言っている人の側の主張が正当なんだよ 最近はここでも保証って言われなくなっただろ、当たり前だよRustの仕様に健全性が無いのだから たぶん知っていて話を逸らしているのか、過去スレでスルーしたかで、この指摘も無理やり矮小化してくるからな (githubの議論でも矮小化して放置) 気を付けろよ https://github.com/rust-lang/rust/issues/114936
53 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:45:16.11 ID:8UflVtOh.net] >>52 情報古いな AmazonはLLRTでしょ cloudflareのRustは放置だ
54 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:48:00.26 ID:3ePlkypT.net] 誰も問題視していないどうでもいいことでしかRustを叩けない状況 アンチが追い込まれている
55 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:53:16.67 ID:8UflVtOh.net] >>53 は>>51 向けな >>52 のは違うIssue/PRのcommitで場当たり的fixしただけで知れっと本質を隠蔽した >>54 問題視したから取り繕いfixしたんだよ
56 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:56:15.69 ID:8UflVtOh.net] >>37 ,47 上位は納得だから結局のところ「IT業界をあげて」なんて言いたかったら Jobで判断するのが客観的で中立フェアな基準なんだな
57 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 14:59:17.67 ID:GfahaNNz.net] >>53 LLRTはAWS LambdaでJavaScriptを使いたい人向けのJSランタイムの一つ Rustが使えるならRustを使ったほうが有利 さらにAWS自体も>>51 にソースがあるようにRustで書かれている
58 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:03:11.52 ID:h80FlwFJ.net] >>57 後半 部分的にな あとそのソースとやらのLiam Tungはいなくなったね 飛ばし過ぎた?
59 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:09:15.42 ID:h80FlwFJ.net] >>57 >Rustが使えるなら 時々見るこの枕詞は実際の現場では使えない事の証拠なんだよなぁ
60 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:10:35.35 ID:h80FlwFJ.net] >>57 >JavaScriptを使いたい人 これが圧倒的だからAmazonが独自魔改造したから凄い
61 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:27:26.81 ID:GfahaNNz.net] >>59 そのAWS Lambdaでも当然Rustを使えます Rustを使えないのは環境ではなく低層プログラマー
62 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:30:50.61 ID:na8ub8Oh.net] >>55 この恣意的な例以外で同様の脆弱性が生まれる例があれば教えて欲しい 煽りとかではなく
63 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 15:48:37.00 ID:3ZfnE9eN.net] >>62 俺も煽りじゃなく警鐘で言うけど >>55 の根本原因究明がならなかったから、今後も散発的に発見しては穴ふさぎをするのでは (CVE報告しないで悪用されたら最悪だけど) Rustのメモリ安全性目標チェックは他の言語と比べて 相対的にメリットがあったりデメリットがあったりするだけのことだから
64 名前:デフォルトの名無しさん [2024/02/25(日) 16:02:53.19 ID:4fScDWQR.net] >>62 恣意的ってそういう意味じゃないですよ
65 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:07:08.08 ID:na8ub8Oh.net] 例出せないならお前が偉そうに言うことではないぞ どの立場からもの言ってるんだ?
66 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:10:58.09 ID:37W0dlDW.net] >>62 >>65 化けの皮が剥がれるの早すぎて草
67 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:11:46.86 ID:na8ub8Oh.net] 俺の質問に答えずに訳のわからないことを言うしかできないんですね くだらないクズが
68 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:14:14.27 ID:wVCQJTWx.net] >>52 実際の開発では出てこない極端に作り上げた例のみだから Rustを採用しているIT大手を含めて問題視していない
69 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:19:05.44 ID:5Lw05PSN.net] >>66 ちなみに急に煽り始める>>65 ,67はあのコテハン >>68 >実際の開発では出てこない極端に作り上げた例 自分で踏んだ事ないから想像だけど、失敗を犯すのはその考え方の人間
70 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:21:52.97 ID:na8ub8Oh.net] いや煽ってきたのはお前だろw 何を勘違いしてるんだ
71 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:23:31.57 ID:na8ub8Oh.net] 自分が攻撃するのは良くて攻撃されるのは嫌か? そういうやつには徹底的にやるから覚悟しろよ 俺に攻撃するってことはそういうことだ
72 名前:デフォルトの名無しさん [2024/02/25(日) 16:24:39.64 ID:4fScDWQR.net] 誰やねん
73 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:27:11.46 ID:LjVpirDf.net] 自分以外が全部同一人物だと思い込んでるアタオカの着火点は意味不明だよな
74 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:31:47.21 ID:wVCQJTWx.net] >>69 実際にコードを見てごらん ありえない無意味なコード 識者たちも問題視していない
75 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:36:11.19 ID:sIg5Fob3.net] >>71 誰も攻撃してないのにこの人怖い、やめてくれませんか 心理的安全性を通り越して身の危険を感じる((((;゚Д゚))))ガクガクブルブル
76 名前:デフォルトの名無しさん [2024/02/25(日) 16:37:37.04 ID:4fScDWQR.net] 例の#25860、ジェネリクスとかマクロ生成の裏で意図しないでこのパターン踏んだりしない? 絶対ない?
77 名前:デフォルトの名無しさん [2024/02/25(日) 16:37:39.99 ID:muM7k3Ml.net] rustでリファクタリングしながらの開発ってなると多分unsafeを途中経過で入れたりとか そういうテクニックが必要になると思う。 その辺の整備が進めば割と広まるかもね。
78 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:45:35.35 ID:wVCQJTWx.net] >>76 絶対にないから安心していい その「&'static &'a ()」が出てくることはない
79 名前:デフォルトの名無しさん [2024/02/25(日) 16:50:17.61 ID:4fScDWQR.net] >>78 理由は?
80 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:51:49.35 ID:zhB6NxSY.net] >>32 サクッとプロトタイピングする目的ならそりゃRustよりPythonのほうが向いてる Rustは多少手間がかかったとしても速度・安全性・堅牢性を高い水準で求める場合に使う言語 >>39 AsRefやTryFromが複雑とか言われても困ります
81 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 16:52:52.76 ID:hjrqLcFN.net] >>77 unsafeは基本的に不要 必要だと思ってもまず標準ライブラリにその機能がないか調べる 次にクレートにその機能がないか調べる どこにも存在しない場合 unsafeを安全に閉じ込めて安全に使うことができる有用な機能を発見したのならばラッキー それをクレートとして公開するとよい
82 名前:デフォルトの名無しさん [2024/02/25(日) 17:06:44.48 ID:4fScDWQR.net] Rustコンパイラチームは意図せず発生する可能性を否定していない様子 ここのヤツはやっぱりテキトー言ってるだけか https://hackmd.io/@rust-compiler-team/SkkrA1DCK#Variance > https://github.com/rust-lang/rust/issues/25860 > root issue of most variance issues > ⚠🚨⚠ can potentially just happen by accident
83 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 17:26:51.68 ID:O13egj5J.net] >>77 同じ構造体の一部を参照しながら別の一部を書き換える大きめのメソッドを 複数のメソッドに分割しようとするとborrow checkerに引っかかる的な話かな 他の言語のクラスと同じ感覚で構造体作るとたまに嵌る Rustの構造体はRDBのテーブルを正規化する雰囲気で分割した方がいい
84 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 17:30:07.94 ID:hjrqLcFN.net] >>82 Rustのvariance仕様だから発生させることはできるけど 現実に使うコードでは発生しない 意図的にその仕様の狭間をつく現実的でないコードでのみ発生する そのためその2015年からそのまま放置で誰も困っていない
85 名前:デフォルトの名無しさん [2024/02/25(日) 17:45:11.19 ID:4fScDWQR.net] >>84 by accidentを辞書で引いてこい
86 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 17:51:15.22 ID:hjrqLcFN.net] >>85 その2015年から9年間 その問題でトラブルが起きたことがない
87 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 17:55:53.01 ID:bLJeGl/a.net] >>81 >unsafeは基本的に不要 >...ラッキー 嘘で始まって運頼みで締めるとはw 信者の心の支えの大手のあそこは 見境なくunsafeを使わざるを得なくなって Rustでやった意味が無くなってるってよ
88 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 17:56:42.46 ID:m/LZ7YZH.net] 可能性を論じるならお前の頭に隕石が落ちてくる可能性だってあるが、そんなことを心配したことある?
89 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 18:03:36.71 ID:c6Ww7brW.net] RustはVec等のCVE前科があるからなぁ 頭に隕石が落ちたんじゃね?
90 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 18:07:11.51 ID:e56nXER6.net] 開発プログラムでunsafeを直接使うことはほとんどない unsafeが閉じ込められ安全なインターフェースが公開されている形で間接的にのみ用いる どうしてもunsafeが必要になった場合でもそのように安全な形で分離して用いる
91 名前:デフォルトの名無しさん [2024/02/25(日) 18:10:03.77 ID:4fScDWQR.net] 隕石であれ何であれそれがエンジニアリング可能な対象なら問題を特定して語る意味はあるだろう
92 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 18:19:05.40 ID:e56nXER6.net] >>89 Dropで型がpanicする時にその要素をた用いたVec::from_iter()で二重解放のバグが発見された件か もちろん他の言語と同様に全ての言語においてライブラリにバグが見つかることは当然ある Rustはその点でも少ない方なので信頼して使える
93 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 18:30:56.08 ID:F3hFw1lw.net] >>90 ,92 思い描く理想と現実の落差が激しいな Rust不信の原因だぞ とくに>>92 の最後の行があるから信用されない
94 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 18:43:22.50 ID:hlYoDW1g.net] Rustの2023年のCVEはCargoで名前をエスケープし忘れた1件のみ Rustの2022年のCVEは0件 つまりRustコンパイラについて過去2年間でCVEなし 信頼度が高いと言える
95 名前:デフォルトの名無しさん [2024/02/25(日) 18:49:05.16 ID:cAT3nYdz.net] Rust以外のコンパイラってそんな言うほどバグないか?
96 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 19:34:08.90 ID:O13egj5J.net] 普通にあるけどみんなで使うから大部分はリリース前に潰される コンパイラというよりライブラリのバグみたいだけど他の言語より未定義動作にシビアだから バグ扱いされる事例が増えるのは仕方ない
97 名前:デフォルトの名無しさん [2024/02/25(日) 19:46:15.91 ID:pvICb5ke.net] >>91 お前のとこは無限のリソースがあるのかな? いいなぁ優先順位考えなくていい環境。うらやましいよ。
98 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 19:49:21.58 ID:+aJmKKn5.net] 今となっては未定義動作の多い言語を使うのは悪行だ Rustを使うべし
99 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 20:11:25.55 ID:yYiD0TuW.net] >>82 ここの信者はテキトー過ぎるよな コンパイラ開発チームはもとより、サーベイ回答者
100 名前:もコンパイラバグ潰しを最優先、が一番多い [] [ここ壊れてます]
101 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 20:15:02.43 ID:yYiD0TuW.net] >>97 余裕があるからRustもやる、と言うのが普通だな サーベイでも(余裕がなくなって)Rust採用予定なし、なぜなら他言語採用予定だから、が一番多い (ただし採用にはインターンも含まれる)
102 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 20:24:50.38 ID:0y8maAN+.net] >>99 対処の必要があるものはその通り しかし実害がないと皆が判断して対処優先度低いまま9年間が経過したが実害がな起きていない そんな状況のものを杞憂したり揚げ足取りでRustを叩いてる連中がゴミ
103 名前:デフォルトの名無しさん [2024/02/25(日) 21:16:46.71 ID:4fScDWQR.net] 事実を書かれただけで批判だと思っちゃうようじゃ生きづらかろうな
104 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 21:34:47.98 ID:E/2LoMBL.net] >>101 これが矮小化と言うやつか 7割がバグ潰しを「最優先」と回答している事実 直したくても直せないまま何年も経過、unsafe無しでメモリ安全ではない(事実)、Rustの不健全仕様(事実) (unsound=不健全は数学用語、要は矛盾があるという事) 幸運にもRustが使われなさ過ぎで実害がないように見える(または報告がないだけ) (良心的に考えてRustが広く使われてない内に)バグ潰しをしとけ、がユーザーの9割の意見(中優先含めて) 週明けのテック記事はどう書くのかな 良い所だけ抜き出してビューが取れるハイプ期間は弱まったと思う それと飛ばし過ぎるといなくなるorz
105 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 21:37:20.20 ID:PFD3HMoN.net] アンチもMozillaが変なことやってるだけで firefoxに導入できるわけがない一般人が 使えるようになるのは妄想とか 言ってた頃に比べると細かい実装の穴を ネチネチやるまでになって大変だなあ
106 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 22:03:27.18 ID:cpTMj4Oj.net] >>103 根本的なことを理解できてないようなので一点だけ unsafeがプログラム全体に散らばっている他の言語に対して Rustはunsafeを局所的に閉じ込めて安全なインタフェイスを公開しそれを使ってプログラミングする言語 よく使われる基本機能は標準ライブラリとしてunsafeを閉じ込めてあるが 必要なら自作を含めてunsafeを閉じ込めたライブラリを使ってよい 他の言語と比べてunsafeを局所的に閉じ込めた部分のみ注視すればよいことがRustのメリット
107 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 22:16:32.90 ID:uv4EdbLT.net] >>105 unsafeに閉じ込められなかった事実を提示されてるんだが何言ってるんだ?
108 名前:デフォルトの名無しさん [2024/02/25(日) 22:32:50.41 ID:cAT3nYdz.net] Rustコンパイラにバグがあるのはかなりキモくて嫌だけど、Rustの利用をやめるほど致命的かというとな
109 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 22:47:36.07 ID:m/LZ7YZH.net] C++ の未定義を踏んでもおかまいなしってよりは原則として問題は検出する (けどちょっとはバグもある) Rust のほうがだいぶんマシな言語設計ではある。
110 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 23:03:18.85 ID:AXW02Nd1.net] unsafeなライブラリがRust用の安全なインターフェースを公開することにより保証される安全性とは もちろん呼び出される側の安全性ではない 呼び出す側だけが検査される しかも検査が完璧かどうかは実装依存 じゃあ言語仕様により保証されるのは何か 言語仕様は、あとは検査が通るか通らないかを確かめればよいというところまで仕様を確定しなければならない
111 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 23:10:45.79 ID:Wz/bOaUk.net] プログラム全体がunsafeなC/C++は使いたくない 未定義な動作も多すぎる
112 名前:デフォルトの名無しさん mailto:sage [2024/02/25(日) 23:49:12.62 ID:bSwN5N4x.net] >>109 Rust関係無しに基本的なことを理解できてないようだけど 掛ける情けも無し
113 名前:デフォルトの名無しさん [2024/02/26(月) 00:02:36.23 ID:cKYYV9zq.net] 反論できないときは関連するワードを含むRustの宣伝文句をぶつける いつもの流れです
114 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 00:08:01.38 ID:GUFKxV6c.net] 難易度は高くとも増加するユーザー、Rustチーム2023年調査「State of Rust Survey」 難易度は高くとも増加するユーザー、Rustチーム2023年調査「State of Rust Survey」 https://news.mynavi.jp/techplus/article/20240222-2889545/
115 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 00:10:06.79 ID:nyM0yI5t.net] >>105 ,109 詐欺師みたいな偽者だな、Rust不信の種まきするのやめろ >>112 分かっていれば支離滅裂文章なんだけど騙されるのは学生位だろうか
116 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 05:11:35.79 ID:G5weOmRY.net] >>前スレ992 Derefは演算子 ・そのためstd::ops::Derefにある (変換std::convert::AsRefと対照的) ・演算子*によりderefされる ・&**へとcoerceされる
117 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 13:22:06.51 ID:vLFZOOEE.net] Derefの名前の由来は*演算子(dereference:参照解決)だろうけど 機能は&**へのcoerceを前提にしてて結果的にrefのままだからややこしいな 現状だとInnerRefの方がしっくりくる
118 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 13:34:26.79 ID:vLFZOOEE.net] 意味的にはFollowRefの方が自然かな まあ*演算子で使われるtraitだからDerefでいいんだけど
119 名前:デフォルトの名無しさん [2024/02/26(月) 17:12:18.82 ID:hotfpUjh.net] 【AI】Stable Diffusion 3発表、Soraで話題の拡散トランスフォーマーを採用 [すらいむ★] egg.5ch.net/test/read.cgi/scienceplus/1708865670/l50 ボイス・トォ・スカるしている者も攻撃を受けるようになりました
120 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 18:21:55.22 ID:K4z1iUSz.net] >>115 >・&**へとcoerceされる これDeref Coercionのこと言ってる? だとしたら&**に限定する意味がわからない あと前スレ992で重要なのは&T→TはDerefの役割ではないというところね >>116 ,117 スマートポインタのdereferenceのために存在するTraitだから InnerRefやFollowRefよりDerefのほうがずっと自然だと思う *演算子の振る舞いとは別にcoercionの振る舞いは理解しなければいけない そういう点でも「Derefは演算子」という捉え方は良くないよ
121 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 19:05:39.95 ID:CpQkWMmQ.net] Rustて、演算子と関数を(意味論的に)区別していたっけ? 中間記法によるややこしい結合順の違いがあるぐらいで、構文解析後は等価だから、あんまりこだわっても仕方が無い気が。 中間記法の演算子は人間の算数の記法に配慮しているだけの悪習でしか無いから、積極的に差異をつけないほうが良い気がするけど。
122 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 19:26:28.00 ID:pFLZLcAJ.net] Deref に関しては * 演算子として機能する以外に型強制の規則があるという話の文脈。
123 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 19:44:24.36 ID:vLFZOOEE.net] +に対するAdd, &=
124 名前:に対するBitAndAssignと同じ位置づけで (*T)に対するDerefがstd::opsに入ってるイメージだけど (*T)自体は let x: Box<String> = Box::new(String::from("foo")); let y: String = *x; みたいに参照先の値を取り出す使い方ができてむしろそっちが本来の意味なのに それができないtrait DerefがDerefを名乗ってるのが微妙だと思った [] [ここ壊れてます]
125 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 19:45:57.01 ID:CpQkWMmQ.net] >>121 サンクス。 「演算子」じゃなくて「 * (参照外し演算)」ということね。
126 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 19:57:36.80 ID:31wdHwrp.net] >>116 *を明示的に付けるとdereferenceされるからDeref &**によるcoerceは何も付けずに適用される そのため参照から参照へ型が変わるだけで参照のままとなる >>119 Derefはoperatorなのでstd::opsにある Derefでも&T→Tと実装されている Derefによるcoerceは&**となる
127 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 20:43:46.74 ID:YO//rx0m.net] 関数と同じでは困るものといえば && || が有名だけど = が一番やばい 初期化とか代入とかコピーとか移動とか
128 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 20:52:21.27 ID:isya6kWo.net] >>125 =はパターンマッチング マッチングした時にCopy実装があればコピーされる 以上で極めてシンプル
129 名前:デフォルトの名無しさん mailto:sage [2024/02/26(月) 21:10:51.91 ID:ucgwnOih.net] Rustにおける = は心の中でバインド演算子って呼んでるわ
130 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 01:03:26.56 ID:38wv4xDP.net] >>124 >Derefはoperatorなのでstd::opsにある https://doc.rust-lang.org/std/ops/index.html ここ見ればわかると思うけど各Traitの説明に”The ~ operator”と書いてるものがoperator Derefは”Used for immutable dereferencing operations, like *v.”とあるようにDerefそのものはoperatorではない >Derefでも&T→Tと実装されている Deref<Target=T> for &Tの実装が提供されてるのは別の役割のため その実装が実行されて&T→Tになっているのではない Box<T>→Tなんかも正確に言えば&Box<T>→&T >Derefによるcoerceは&**となる 全然わからない 何か一つくらい根拠を提示してくださいな
131 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 01:17:48.86 ID:keoFxKh8.net] Derefによるcoerceは&**となるのが全然わからないって本気なのかな? 「corece後の参照」= &**「corece前の参照」 となるのがDerefによるcoerceだよ
132 名前:デフォルトの名無しさん [2024/02/27(火) 03:35:57.72 ID:Q3TDZDiV.net] READ THE FUCKING MANUAL https://doc.rust-lang.org/beta/reference/type-coercions.html#coercion-types
133 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 05:16:27.87 ID:2XUMNloz.net] >>129 >「corece後の参照」= &**「corece前の参照」 実験コード書いて一通り確認してみたら たしかにそうなった
134 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 08:57:02.46 ID:+775Shg6.net] 上の一連の流れ見てるだけでRustしんどそうに見える
135 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 10:40:40.53 ID:90WdzyYj.net] >>129 なるほどそういう風に捉えてるのか ちょっと独特だね それはcoercionの動きというよりderefのシグニチャを 内部的にderefを使ってる*演算子で再定義しようとしてるので 循環が気持ち悪いけど一つの見方として頭の隅にしまっておく ちなみにThe Bookにある一つの例ではderef coercionがなければ*が余計に必要と説明されてる https://doc.rust-lang.org/book/ch15-02-deref.html#implicit-deref-coercions-with-functions-and-methods それに&**とは必ずしも等価じゃないからDeref Coercionを説明するのにはあまり勧められないかな let x = "Hello".
136 名前:to_string(); let y = Box::new(x); let z = &**y; //zは&strになる let z:&str = y; //これはcoerceしないのでコンパイルエラー [] [ここ壊れてます]
137 名前:デフォルトの名無しさん [2024/02/27(火) 10:44:06.64 ID:HDl/V1Sy.net] こんな議論が発生する時点でかなりややこしくて面倒な言語がであることは認めざるを得ない