X



Rust part18

レス数が1000を超えています。これ以上書き込みはできません。
2022/12/10(土) 18:17:02.61ID:XSNoXTPt
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

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 part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/
931デフォルトの名無しさん
垢版 |
2023/01/15(日) 15:27:38.76ID:L+UeRXU0
>>930
言い訳ないだろw
戦略的にも品質的にも生産性的にもあり得ない

仕様書通りにできててテストに合格してればいいという理由でGoogleが自動運転技術の命に関わるような開発を4次請け5次請けに出すと思うか?
シートベルトやエアバッグ作るのとはわけが違うんだよ
2023/01/15(日) 16:08:55.48ID:9tzHaMX4
>>931
だから不安なら禁止すればいいと書いた
2023/01/15(日) 16:09:46.14ID:dEFl4tMA
>>931
GoogleはGoogleの付加価値を提供するために自分たちでやっているだけでしょ
車とそのシステムを作るカーメーカーやTier1が自分でソフト書かなくても品質保証できていれば問題ない。付加価値はそこじゃないから
時代は変わってきてるけどね
2023/01/15(日) 16:13:07.64ID:9tzHaMX4
Rustは メモリ関連のバグが減るからどんだけ下請けに出しても
大丈夫な言語でしょw
935デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:19:04.91ID:kf65JyLn
>>933
そんな考えだから
トヨタですらコードがスパゲッティすぎるという理由で安全性を疑問視され訴訟で負けたりするんだぞ

ソフトウェアというものへの理解が足りない
2023/01/15(日) 16:20:38.88ID:9tzHaMX4
>>935
え? 負けてないけど?
2023/01/15(日) 16:32:56.96ID:x9M0LVrY
fn foo(・・・) -> Path {
>error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
Pathを返したい場合ってどうすればいいの?
Path::newとかはPathを返してくるしPathを返り値とできないってことはないと思うんだけど
2023/01/15(日) 16:38:48.05ID:+F45TDzj
テスラ車を突然襲う「ファントムブレーキ」、米NHTSAが調査に本腰
https://www.gizmodo.jp/2022/02/what-causes-phantom-braking-in-tesla-cars.html
https://www.youtube.com/watch?v=gG2joDBwvUk

調査の対象となる去年と今年の北米市場版Model 3とModel Yは8つのカメラオンリーです。前方の障害物を認識するレーダー(競合EVの間では自動運転に不可欠というのが常識)は装備されていません
2023/01/15(日) 16:56:40.61ID:ENXbg9TW
>>937
Path::new()の戻り値の型は&Path
2023/01/15(日) 17:00:40.85ID:4g2lfxWa
>>935
コードがスパゲッティだと安全性
2023/01/15(日) 17:01:49.92ID:4g2lfxWa
>>935
コードがスパゲッティだと安全性に問題あり→分かる
コードがスパゲッティだと裁判で負ける→そんなわけない
2023/01/15(日) 17:20:01.49ID:c/yAq8vN
>>926
それ以外も全般的に。
943デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:55:36.90ID:5NYA+kvP
>>937
Pathはsliceだから生のままでは返せないよ

Stringとstr
OsStringとOsStr
PathBufとPath
の関係
2023/01/15(日) 17:56:08.44ID:JkaIrkhI
>>939
今度は
>error[E0515]: cannot return value referencing temporary value
そりゃそうだが動的に生成したPathは返せないのか?
2023/01/15(日) 19:17:28.73ID:VFtoNkPd
>>935
rustはスパゲッティーでもメモリは安全安心なんだぞ
2023/01/15(日) 19:40:58.90ID:fK8j/jFh
秘技!unsafe発動!私は無敵になる!
2023/01/15(日) 19:54:34.79ID:m9lyhdrZ
>>944
動的に生成したパス文字列なら生成した文字列を保持するメモリが必要だからPathBufで返す
関数の中で作成したString(OsString)は関数を抜けるといなくなるからそれを参照する&Pathは返せない
どーーーしても&Pathで返したいなら生成した文字列を保持するための&mut OsStringを渡すみたいな技巧が必要

単純に使いたい関数の引数が&Pathなのであれば&PathBufを&Pathとして使える(&Stringが&strになるのと同じ)
2023/01/15(日) 19:58:23.93ID:VFtoNkPd
動的に生成したパスタに見えた
2023/01/15(日) 20:11:32.50ID:XPwcoEw+
>>946
無敵どころか無防備やん
2023/01/15(日) 20:49:39.82ID:m9lyhdrZ
彼の敵はRustコンパイラだから…
2023/01/15(日) 23:14:32.72ID:PFXm7BL+
コンパイラを黙らせることが開発だとでも思ってんのかね
2023/01/15(日) 23:28:08.61ID:lfgB9E3M
日本の仕事の進め方的には遠からず当たっているのでは?
うるさい奴を黙らせればおkみたいな会社は多いだろ
2023/01/15(日) 23:30:43.68ID:PFXm7BL+
そういうアリバイ主義者と静的解析バカの悪魔合体は勘弁願いたいな。
2023/01/16(月) 00:40:29.27ID:kCG1A2Jc
>>947
マジか。結局Pathを全部PathBufに書き換えた
955デフォルトの名無しさん
垢版 |
2023/01/16(月) 01:05:51.67ID:N6G/4L1i
最初の[u8]渡してエラーになってるやつは
&[u8]を渡して&Pathを返す関数にするのが一般的
2023/01/16(月) 08:09:07.68ID:iSnf76Rg
let mut v:Vec::<u8> = Vec::new();
let mut t = tar::Builder::new(v);
と書くと1行目がwarning: variable does not need to be mutableになるんだけど
こういうときってどう書くのがいいのだろうか
コンパイラのチェックや動作に問題がなくても変化する変数をイミュータブルで
宣言するのは可読性が落ちるし
2023/01/16(月) 08:16:50.14ID:uVn9RqoF
>>956
少なくともvは一度も変更せずにtar::Builderにムーブされてしまうのだから
素直にmut取ればいいと思うけど
ムーブ先で将来的に変更される可能性のあるものすべてにmutを付けるというのは
特に可読性良くもないと思う
2023/01/16(月) 08:26:33.56ID:uVn9RqoF
というかその理屈だと
let b = a;
let c = b;
let d = c;
とムーブしたときにdをmutにしたくなったら依存関係を遡って全部にmutつけてまわるのか?
2023/01/16(月) 14:37:28.51ID:2c24Nzcv
Chromium、プログラミング言語「Rust」をサポートへ
https://news.mynavi.jp/article/20230116-2564518/

米Googleは1月12日(現地時間)、これまで展開してきたChromiumプロジェクトにおいて、新しくプログラミング言語「Rust」をサポートしていくと明らかにした。来年にはRustで書かれたコードをChromeのバイナリに含めることができるようになるという。

Rustは、もともとFirefoxなどを提供しているMozillaがブラウザ開発のために作ったプログラミング言語。GoogleはRsutをChromiumに導入する目標として、開発のスピードアップやセキュリティの向上を挙げており、この達成にはRust採用が適切だと言及。
Mozillaのソフトウェア業界への貢献に対して感謝すると述べている。なお、ChromiumにおけるRustのサポートは、しばらくC++からRustへの単一方向に限定するという。
2023/01/16(月) 14:38:46.87ID:hltYF0vb
>>912で既出
2023/01/16(月) 14:39:38.74ID:MPqflB5Z
>>959
おまえさぁ、もうで>>912ですでにでてることをなんでわざわざ書くの?
仕事できないだろお前
2023/01/16(月) 15:01:00.01ID:Lz+ZMLI1
そのための言語だろRustって
ド素人無能の働き者養成ギブスよ
963デフォルトの名無しさん
垢版 |
2023/01/16(月) 15:43:26.07ID:6Q5nPNp3
>>962
古のイキリCOBOLコーダーと同じメンタリティだな
2023/01/16(月) 16:20:01.69ID:qYPB25TW
ところが、COBOLよりC/C++は圧倒的に多くの人に使われて来たはず。
2023/01/16(月) 16:24:22.58ID:TYpkB5sr
Rustももう少しC/C++に寄せてくれたらよかったのにな。
C++をうまく拡張してメモリまわりとかどうにかならんにかな。
maneged C++、、C++/CLI、、、うっ、頭が。
966デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:35:50.18ID:IKYjLHSG
なんでわざわざ避けるべきものに寄せる必要があるんだよ
2023/01/16(月) 16:38:52.96ID:qYPB25TW
Rust好きは、関東の人が世界で一番関東料理が優れていると思い込んでいるみたいな話だな。
2023/01/16(月) 16:41:14.88ID:1njlGWhp
C++ の改定の歴史を見ればわかるだろう。
互換性を維持して便利に改良! なんてやってたらわけのわからん歴史的事情の積み重ねでグダグダになるんだってば。
互換性は絶対要件にしないが似て非なるものという程度の改良だとそれはそれで新しいキメラになるだけだし。

知見を踏まえつつも新しく設計するというくらいでようやくスッキリと整理されたものが出来る。
でも現実はね、現実がそんなに綺麗なもんじゃないからそれに使うプログラミング言語もいくらか汚い部分があるのは仕方がないのや。
Rust の汚い部分は unsafe に集約されてるから簡単に未定義を踏めてしまう C++ より比較的マシって話。
2023/01/16(月) 16:52:33.55ID:qYPB25TW
Rust用語派は同じような話ばかりで、C++の問題点を解決したからRustは良くなっ
たと。しかし、それはfactではない。
970デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:54:19.39ID:1GjRSVL7
関東料理て何だよww
広東なら知ってるが
2023/01/16(月) 16:56:18.44ID:jJu5zsI6
おちんぽからでるしるならしってりゅ
2023/01/16(月) 17:16:54.53ID:qYPB25TW
Rustという英単語から「枯れた」という印象を受けてしまう人も多いんだろうが、
実際のRustの言語定義は、枯れているとは言い難い出来で独自な奇妙で新しいもの。
枯れている=古いが便利 というニュアンスとは全く当てはまってない。
2023/01/16(月) 17:17:45.60ID:UvcYTxKD
え?ゲームじゃないの?
2023/01/16(月) 17:23:10.52ID:/Oj6b8p3
> Rustという英単語から「枯れた」という印象を受けてしまう人も多い

まずこれがおかしい
2023/01/16(月) 17:30:23.05ID:t2tq2J5w
ゲームが検索の邪魔
2023/01/16(月) 17:41:15.13ID:qYPB25TW
北米は fake news の本場だからな。
2023/01/16(月) 19:29:31.29ID:TjR5adpl
>>957-958
イミュータブルで宣言した中身が書き変わってしまうようなコードはムーブ後であったとしても
ttps://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html
このあたりの説明と矛盾しない?

tar::Builder::new()の引数の中身が書き変わらないことを期待されるということはないだろうし
ミュータブルのものだけ通るようになっていた方が宣言と動作が一致すると思うけど
何か不都合があるのだろうか
978デフォルトの名無しさん
垢版 |
2023/01/16(月) 19:41:55.12ID:EhSk+RRY
>>977
変数とその変数が指している先がごっちゃになってる予感。
979デフォルトの名無しさん
垢版 |
2023/01/16(月) 19:46:19.45ID:EhSk+RRY
>>977
あと旧来の変数への代入とletバインディングもごっちゃにしてる予感。
2023/01/16(月) 20:02:08.69ID:WqklweoR
>>977
たぶんmutが値の不変を示しているという理解なんだと思うんだけど
mutはあくまでバインドしてる変数を通して変更操作ができるかどうかしか言ってない
値の不変は型で示されるもので、例えば&[u8]ならそこからどうムーブしようがmutつけ外ししようが値は不変
逆に言うとVec<u8>と宣言した時点で値は可変だと言ってることになる
なのでtar::Builder::newの引数がVec<u8>を取るのは可変を要求していて、宣言と動作が一致している
2023/01/16(月) 23:07:27.01ID:VmI5C27p
んー。
取っ掛かりがいまいち掴めないね。
やる気なんだけど。
2023/01/17(火) 05:20:39.27ID:pHgdxC9n
汚コード増し増し
983デフォルトの名無しさん
垢版 |
2023/01/17(火) 11:45:58.31ID:FU2QjMV4
>>979
そこは従来の宣言+初期化と本質的な違いはないからごっちゃにしてても構わない
984デフォルトの名無しさん
垢版 |
2023/01/17(火) 11:51:09.90ID:1F7zkQ+V
>>980
次スレヨロシッコ
2023/01/17(火) 12:42:09.73ID:nikBFIMQ
Rust part19
https://mevius.5ch.net/test/read.cgi/tech/1673926892/
2023/01/17(火) 18:21:49.35ID:+DkoRQk8
>>978-980
それってC/C++のポインタとポインタが指し示す先にある実体の関係に似ていると思うけど
The Bookのどこに書いてあるんだ?
新しめの言語はC/C++の反省?からかポインタを意識させないようなのが多いと思うし
スカラー型と非スカラー型を明確に区別して扱う必要があるのであればなおさら重要じゃないかな

>>980
動作はわかるけどソースを見たときの直感と動作が一致してるかは疑問
C/C++のconstとかも何が修飾されるのか判りにくいけど同じ問題があると思う
2023/01/17(火) 20:03:43.04ID:kyV1E/lM
>>986
個人的には一貫して直観的だと思うけど、
完全に理解した上で分かりにくいというならしょうがないんじゃない
感じ方は人それぞれだし
2023/01/17(火) 22:12:22.97ID:j3IKCnVq
>>986
変数と値の関係自体は他の言語でも同じだよ
The Bookならここをよく読むのが一番いいと思う
https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html#storing-values-with-variables
2023/01/18(水) 00:25:00.21ID:Pm4bFalo
into_inner() はムーブする、get_ref() はムーブしないという理解で合ってますか?
990デフォルトの名無しさん
垢版 |
2023/01/18(水) 00:51:09.43ID:w7TKdBn9
>>989
命名的にはだいたいそうだろうという予測はつくが正確にはメソッドシグニチャを確認して
2023/01/18(水) 02:24:30.31ID:Pm4bFalo
>>990
わかりました
992デフォルトの名無しさん
垢版 |
2023/01/18(水) 11:01:37.80ID:j7LzfbP6
次スレはワッチョイ有効でどうでしょう
https://mevius.5ch.net/test/read.cgi/tech/1674007100/
993デフォルトの名無しさん
垢版 |
2023/01/18(水) 11:09:32.47ID:pgep9wBY
>>992
既にあるスレ使ってからにしろよ
2023/01/18(水) 12:27:11.63ID:aiZApxd8
>>992
おけ、このスレ完走したらそっちに移ろうか
2023/01/18(水) 12:42:52.69ID:bufcBpA/
ワッチョイいれると原理主義者しか残らなくなるからいらない
特に技術系スレで論理性がなくなるのは致命的
2023/01/18(水) 12:51:28.61ID:XUj03KlL
言うほど論理性があったか?
ワありで別に困らないし、ありとなしで並走して人が多いほうに行くわ
2023/01/18(水) 13:02:48.00ID:Pm4bFalo
ワッショイワッショイ
2023/01/19(木) 01:11:57.37ID:ulObPkyG
>>995
まるで反論になってない
2023/01/19(木) 02:24:17.21ID:9BxYgLng
質問いいですか?
2023/01/19(木) 04:40:51.94ID:2BG8SfY3
ちんちん!シュッシュッ!
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 10時間 23分 50秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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