Rust part15

レス数が1000を超えています。これ以上書き込みはできません。
2022/05/12(木) 18:28:20.99ID:cuIcFT6k
公式
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/

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

※次スレは原則>>980が立てること

前スレ
Rust part14
https://mevius.5ch.net/test/read.cgi/tech/1644596656/
2022/06/25(土) 18:08:27.82ID:57CBQU6k
🦄
2022/06/25(土) 19:58:37.73ID:VflkbZsO
いいわー
ワッセンブラいいわー。
969デフォルトの名無しさん
垢版 |
2022/06/25(土) 20:26:19.09ID:bZig/WUT
スレチおるど
2022/06/25(土) 22:42:14.67ID:hVwOcYNS
DOMてアレやろ、
2022/06/25(土) 22:55:47.02ID:Bztv57SD
ドムとかユニコーンとかガンダムかよ
2022/06/25(土) 23:21:23.27ID:/UVjDglo
tenplate要素使ってDOMツリー作ってそこに値や要素追加して表示しろって言われた時は訳わかんなかった
2022/06/25(土) 23:22:45.89ID:Ch122rDL
>>972
スペル間違うぐらいなら無理せずカタカナで書けよ
2022/06/25(土) 23:35:08.74ID:3qOpf/5R
フロントに全く興味ない奴らが無理してrust使おうとしてるってのがもうクソだわ
2022/06/25(土) 23:57:43.41ID:sDy4bz93
Stringの中身が変化してほしい時のtrim()はどうすればよいですか?
2022/06/26(日) 00:30:53.23ID:J3iRsr8e
自分では何も思い付かないんですか?
2022/06/26(日) 00:41:24.45ID:DP2sbpoK
>>942
なぜ無駄に高解像度なのか
2022/06/26(日) 01:12:05.67ID:82o8ItO8
s.retain(|c| !c.is_whitespace());
2022/06/26(日) 01:14:23.73ID:82o8ItO8
中間のスペースも削除されるのか
2022/06/26(日) 04:54:09.98ID:mBbZ0Pti
>>979
そりゃそうだろw
後側の削除だけならtruncateすればいいんじゃね?

let mut s = String::from("てすと ");
let end = s.rfind(|c: char| !c.is_whitespace()).unwrap();
s.truncate(end + 1);

thread 'main' panicked at 'assertion failed: self.is_char_boundary(new_len)'
ダメだった…
2022/06/26(日) 05:14:19.98ID:vh+TaUjL
s.truncate(s.trim_end().len())
2022/06/26(日) 11:52:06.13ID:KbueaMTO
panic する理由を理解したほうがいいよ
983デフォルトの名無しさん
垢版 |
2022/06/26(日) 17:08:41.82ID:afHQr9JE
Linus「メモリ確保でpanicするって?認めんわ断じて認めん、ワシの目の黒い内は許さんぞ」
2022/06/26(日) 17:27:36.02ID:nfXqcTpP
宇宙じゃ。宇宙のせいじゃ!
2022/06/26(日) 17:36:15.17ID:DrXudPeH
Linuxの話題は、あわしろを召喚しちまうから、やめとけ
2022/06/26(日) 17:36:30.96ID:TFpQVi1k
>>983
青いからセーフ
2022/06/26(日) 18:43:28.30ID:82o8ItO8
fn trim_in_place(s: &mut String) {
if let Some(offset) = s.find(|c: char| !c.is_whitespace()) {
s.replace_range(..offset, "");
}
s.truncate(s.trim_end().len());
}

前後で非対称なのが気になるけど文字境界をうまく扱えるStringのメソッドが他に見つからなかった
2022/06/26(日) 21:34:33.23ID:xXnnisch
> s.find(|c: char| !c.is_whitespace())

rustってこれうまいこと関数名だけ渡せないんだっけ?
しかも関数合成できれば
s.find(char::is_whitespace . not)
みたいに書けたり?
2022/06/26(日) 22:00:29.06ID:ZYHqIh+i
5chでまともな回答期待する方が頭おかしいことになぜ気付かないんだ
redditでDeepL使って英語で海外ニキに質問した方が1億倍まともな回答くれるぞ
2022/06/26(日) 23:10:04.56ID:Y8S6yv8a
>>988
関数を自分で定義しとけばわたせるけど
合成しながらだとマクロ使わないと無理なんじゃないかな
2022/06/26(日) 23:57:49.73ID:VW+uLNTw
>>461
メソッドを増やす時にOrphanルールで出来ないとしたら
それは標準ライブラリ含めて他人が書いたトレイトを他人が書いた型に適用する場合
スライスへfindメソッドを増やすことはそれに該当しないため出来る
適当なトレイト名SliceFindMethodを用意してスライス[T]にメソッドを実装すればよい

trait SliceFindMethod<T> {
 fn find(&self, pattern: impl SliceFindPattern<T>) -> Option<usize>;
}

impl<T: PartialEq> SliceFindMethod<T> for [T] {
 fn find(&self, pattern: impl SliceFindPattern<T>) -> Option<usize> {
  pattern.slice_find(self)
 }
}

文字列へのfindと同様に様々なパターンに対応できるよう
適当なトレイト名SliceFindPatternとそのメソッドslice_find()を用意し様々な実装をすればよい
長くなるので全体のコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9110b8c76b17fb479bfef80e1f10182d

これでスライスの一種であるバイト列に対してもfindが適用できる
let buffer: &[u8] = b"ABCDEFGHIHJKL";
assert_eq!(Some(5), buffer.find(b'F'));
assert_eq!(Some(3), buffer.find(b"DEF"));
2022/06/27(月) 00:08:38.77ID:xVflpq4r
>>989
プログラミング情熱のある2-30代の集う板じゃなく
プログラミングはもう碌にしないおっさん・爺が多数の板だからな
質問してもおいおいな回答になるのは仕方ない
2022/06/27(月) 00:54:52.23ID:7xcJ7izy
>>989
翻訳の話題はあわしろを召喚しちまうからやめとけ。
2022/06/27(月) 02:47:29.39ID:52L0v8L5
null ぬる なる
2022/06/27(月) 04:40:51.89ID:KgP+fmt3
rust cliコマンドがなぜrustupなのか誰も疑問に思わんの?
俺はこのupがなんなのか気になって調べても分からなくてイライラする
rustup updateとかものすごく気に入らないしそもそもrustupとcargoがあるのもややこしい
996デフォルトの名無しさん
垢版 |
2022/06/27(月) 08:27:05.49ID:SVONOTxH
慣用句の意味を調べるときは"で括るんやで
2022/06/27(月) 08:27:50.24ID:gDlfKP6u
>>995
今はrustcやrustfmtなど含めて全て実体は同じでハードリンク
cargoが各ワーキングディレクトリに対して適用されるのに対して
rustupは全体に適用されるため
同じ名前のサブコマンドでも全く異なる
2022/06/27(月) 08:28:40.38ID:gDlfKP6u
次スレ
Rust part16
https://mevius.5ch.net/test/read.cgi/tech/1656285423/
999デフォルトの名無しさん
垢版 |
2022/06/27(月) 10:40:27.69ID:B/Kpn5Aj

Slot
💣🎴💣
🎰🎰🌸
🌸😜👻
(LA: 2.02, 1.95, 1.85)
1000デフォルトの名無しさん
垢版 |
2022/06/27(月) 10:40:32.55ID:B/Kpn5Aj

Status ♥5 ♣8 ♠7 HP: 1000 pts. たぶん(0)
2.02, 1.95, 1.85(904.632812) Proc. [0.187892 sec.]
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 45日 16時間 12分 12秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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