X



Rust part22
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2024/01/20(土) 23:21:40.08ID:wyzQTwgG
公式
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 part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
0977デフォルトの名無しさん
垢版 |
2024/02/23(金) 16:04:17.89ID:02Kw336h
traitの種類多すぎて把握しきれん
使い分けもようわからんし
0979デフォルトの名無しさん
垢版 |
2024/02/23(金) 16:32:06.33ID:eHVJk53E
スマホやタブレットなどのモバイルOS上に開発環境用意するのは主に2つユースケースがある
1つはモバイルOS上で実行させる小さなユーティリティを作るため
だいたいlinux emulatorみたいなアプリ内環境で稼働させる
もう一つは出先の空いた時間や障害対応等の緊急時にノートPCを持ち歩かなくても簡易的な作業なら対応できるようにしておくため

前者はスマホだけで作るやつもいるにはいるが少数派
なので今のところはメイン開発環境は別に用意してるのが大半
0981デフォルトの名無しさん
垢版 |
2024/02/23(金) 17:26:44.63ID:kgcjkDLJ
次スレタイトル間違えてしまったのですまんが誰か立て直してくれ
規制食らってもう立てられなくなった
0982デフォルトの名無しさん
垢版 |
2024/02/23(金) 17:35:21.56ID:CheDQupm
>>977
traitとは機能を抽象化した抽象型だから使いたい機能のtraitを選ぶか作ればよい
structなどの具象型は各々必要な各機能(trait)を実装しているもしくは実装すればよい
そして抽象型(trait)を用いてプログラミングすることでその機能を実装する全ての具象型を対象とした共通コードにできる
0986デフォルトの名無しさん
垢版 |
2024/02/23(金) 20:10:18.94ID:1IK2X2kO
>>982
FromとかAsRefとかDerefとかの時点でもうようわからんぜ
0987デフォルトの名無しさん
垢版 |
2024/02/23(金) 22:42:10.08ID:oukljDwS
Fromは汎用的な変換だよ
変換に失敗する可能性を含む時はTryFromを使う

AsRefは参照から(別型の)参照への読み替え変換
コストがかからない場合が対象
コストがかかるものはFromを使う

Derefは変換ではなく演算子
変換は複数の型への変換を実装できるけど
演算子なので各型で決められた一つの型へderefできる
&T→T
Box<T>→T
Rc<T>→T
Vec<T>→[T]
String→str
PathBuf→Path
など
0988デフォルトの名無しさん
垢版 |
2024/02/23(金) 23:50:59.87ID:1IK2X2kO
あー。それぞれの比較はまあそうなのかもしれないんだけど、そもそもどういうtraitがあってどういう時に使うべきなのかを全て把握できてないせいで実際にコード書く時にどれを使うとRustらしいコードになるのかわからなくなるってのがしんどいんだよね
0989デフォルトの名無しさん
垢版 |
2024/02/23(金) 23:59:41.76ID:hX/YHnPg
>>988
どの分野のどんな話でも基本パターンの学習による慣れ
問題

match std::env::args().XXXXX {
 Some("yes") => ...,
 Some("no") => ...,
 _ => ..., // エラー
}
0990デフォルトの名無しさん
垢版 |
2024/02/24(土) 02:12:39.95ID:YQ3M0cmx
0991デフォルトの名無しさん
垢版 |
2024/02/24(土) 04:00:00.27ID:felFEjYK
「当然こういうのが標準ライブラリにあって然るべきだろう」みたいな感覚ができるから結局は慣れ。
常識的に考えてあるだろうと思ったら nightly だったみたいなこともよく経験するから俺が欲しいようなものはみんな欲しいんだなと思う。
実質的に言語の一部みたいなくらいのやつは嫌でも避けられないから何度もドキュメントを読み返すはめになるし、そのうち自然に使えるようになる。
0992デフォルトの名無しさん
垢版 |
2024/02/24(土) 12:21:57.67ID:lhpjpr9r
>>987
Derefは演算子でも利用されるがDerefそのものが演算子(や演算子の実装)というわけではない
Type Coercionというのは型変換(Type Conversion)の一種なのでDerefは変換ではないというのもやや言い過ぎ

各型で決められた一つの型にderefされるのは演算子だからという理由ではなくて
Derefはスマートポインタが包んでる値へのアクセスを便利にするために用意されたものだからderef先の型は自然と一つに決まるため(>>733)

&T→TはDerefの役割ではない
0993デフォルトの名無しさん
垢版 |
2024/02/24(土) 12:57:43.72ID:Sbx59RJL
AsRefとBorrowは未だにわからんなあ
調べてもHashMapがBorrow要求するならそこだけBorrow使っておけばいいか……で思考停止してる
0994デフォルトの名無しさん
垢版 |
2024/02/24(土) 13:58:08.04ID:Q2pRspv0
0995デフォルトの名無しさん
垢版 |
2024/02/24(土) 13:58:23.94ID:Q2pRspv0
生め
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 34日 14時間 37分 28秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。

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