Rust part15

レス数が950を超えています。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/
898デフォルトの名無しさん
垢版 |
2022/06/23(木) 23:28:00.25ID:N/ehCqi3
>>895
普通はそうだ。でももちろん例外だってある。
その辺は開発者組織の感性しだいだな。
何年もずぅ~っとβ版のプログラムだってあるだろ。
2022/06/23(木) 23:56:18.80ID:CfsYAKzO
>>895
自分たちが使っているcrateのtreeを見れば分かる
大半がバージョン0
それで誰も困っていない
2022/06/23(木) 23:59:26.92ID:CfsYAKzO
>>894
GC導入は各言語であまりにも異なるため失敗した
各言語が様々な形でしている効率的な方法は取れない
WebAssemblyはRust一強が続くだろう
2022/06/24(金) 00:03:12.87ID:Z/7Mth9k
>>896
Rustはなんだかゾクゾクしますぞ!!これは服なぞ着てる場合ではありませんぞ!!
902デフォルトの名無しさん
垢版 |
2022/06/24(金) 04:06:11.87ID:aL7/n23O
赤いの黙ってて
2022/06/24(金) 06:23:10.42ID:EMaN3eAt
>>897
ネタに全力でレスすんなよw
2022/06/24(金) 09:12:28.24ID:rZmITKBS
まあクソネタにはクソって言っとかないと本当にウケてると思っちゃうやついるからね
905デフォルトの名無しさん
垢版 |
2022/06/24(金) 09:18:36.99ID:8+vtapEb
だっさ
2022/06/24(金) 09:46:26.14ID:ZKGFoh0M
そうそう、クソネタにはそうやってダサいと言っておかないと
907デフォルトの名無しさん
垢版 |
2022/06/24(金) 09:50:10.56ID:K2we1Lar
>904
+1
2022/06/24(金) 10:05:30.32ID:0NSCQb1H
スルースキルが皆無なのですわ
荒らし様にお引き取りいただけない訳も推して知るべしですわね
2022/06/24(金) 10:21:55.48ID:ZKGFoh0M
>スルースキルが皆無

誰も自己紹介なんて頼んでないのに…
2022/06/24(金) 17:42:51.52ID:EMaN3eAt
ネタにレスして顔真っ赤w
2022/06/24(金) 21:06:17.36ID:3e9x6I/t
wasmって流行ってるけどコード量膨大に増えすぎないか?
2022/06/24(金) 21:14:59.98ID:FArw1u5A
フロントエンドの奴らが rust を使ってるの見てらんない。
TS で無難に書いておけばいいよ。
2022/06/24(金) 21:41:14.48ID:eHTn7QRG
>>911
流行ってません
2022/06/24(金) 21:41:45.02ID:eHTn7QRG
脳内をハッキングでもされてるのか?
2022/06/24(金) 21:48:58.86ID:+JdvQwfN
>>911
javaの中間コードよりマシ
2022/06/24(金) 22:46:43.70ID:/25pqsku
ところでものすごい今さらなんだが wasm は何て読むんだ?
ワスムか
2022/06/24(金) 23:21:33.67ID:KLiHHhJ8
ネイティブはだいたいワズムとかウォズムみたいに発音しているような気がする
2022/06/24(金) 23:23:01.01ID:g65423tt
この動画では冒頭でwasmをワスムって言ってる
https://youtu.be/nW71Mlbmxt8
2022/06/24(金) 23:28:47.07ID:wBI1zPp0
>>918
これはワズムっていってないか?リスニングはからっきしのゴミ耳だからよくわからんけど
2022/06/25(土) 01:14:39.07ID:JyoKDUES
ワズムて連呼しとるね
isの過去形のwasにm
2022/06/25(土) 02:13:22.50ID:APixfc76
>>911
コード量ってなんのこと?
922デフォルトの名無しさん
垢版 |
2022/06/25(土) 09:56:07.84ID:pPSG+F7f
ダブルアセムって脳内で読んでたわ
2022/06/25(土) 10:14:25.56ID:APasFGX+
asm.js(アズム ジェイエス)が進化してwasm(ワズム)に
2022/06/25(土) 10:21:42.97ID:hQoUoumV
英語できねーおっさんが蘊蓄垂れてクソワロタwww
お前らマジでプライドだけは一流の無能おじで草
2022/06/25(土) 10:50:44.23ID:f+PJ3XzM
ウェブアセンブラっていみジャネーの?
2022/06/25(土) 13:18:50.95ID:jO6HH2tH
>>925
もちろん Wasm は WebAssembly の省略形だよ。
公式にもそう書いてある。
2022/06/25(土) 13:29:07.82ID:/zwkJ/mi
それはみんな知っての上でレスしてるのに
>>925みたいな周回遅れのレスを堂々と付けれるやつって
脳みその構造どうなっとんやろな
928デフォルトの名無しさん
垢版 |
2022/06/25(土) 13:52:40.86ID:23CjKpU2
wasmは俺が育てた!(AAry
2022/06/25(土) 14:34:43.26ID:tSCqWCmZ
きみたちもうちょっと真面目にやりなさい
2022/06/25(土) 15:17:36.49ID:VflkbZsO
>>926
じゃあ、ウェブのアセンブラって意味で良いんじゃないの?
2022/06/25(土) 15:25:02.65ID:bv95EvGA
WebAssemblyは仮想命令セットアーキテクチャあるいはプログラミング言語の一種である。略称はWasm。C・Rustなど様々なプログラミング言語のコンパイルターゲットとしてWasmバイナリは生成され、ウェブブラウザを含む様々な環境内のスタックベース仮想マシンにより実行される。
ネイティブコード相当の高速性・隔離環境でのメモリ安全な実行による安全性・仮想マシンによるハードウェア/プラットフォーム可搬性・ソースプログラミング言語中立性などを特徴とする[4]。この命令セットはバイナリ形式で定義されており、またアセンブリ言語ライクなテキスト形式も定義されている(その意味で低水準プログラミング言語といえる)。

Wasm自体は命令セットアーキテクチャであり、Linuxカーネルが提供するようなシステムコール(例: ファイルI/O)、Webブラウザが提供するようなDOMアクセスなどを提供していない。上記の安全性や可搬性はこの特徴に由来している。それと同時に、WasmエコシステムとしてはシステムコールやDOMアクセスがAPIとして個別に定義されており、Wasmランタイムが実装することでそれらの機能を提供している(例: システムコールを提供するWASI)。シンプルでオープンなISAとランタイムごとのAPIを組み合わせることでWasmエコシステムは高い拡張性を有している。例えばWasmをHTTPプロキシでのフィルタスクリプトとして利用するプロジェクトが存在する。
https://ja.m.wikipedia.org/wiki/WebAssemblyより
2022/06/25(土) 15:32:39.09ID:tfc1tmd2
>>930
>>931 にあるように、ウェブのアセンブラという解釈は間違ってる。
ウェブアセンブリっていう名前なだけ。
わかった?
2022/06/25(土) 15:35:16.83ID:KZ/E7BkI
現実問題としてWasmはRustで書くのがベストソリューション
2022/06/25(土) 15:35:55.67ID:VflkbZsO
三行以上書かれても
わかるわけない
常識
2022/06/25(土) 15:36:39.28ID:UfyFqt6J
仮想マシン上で動くという点でWASMはJavaと一緒だな
2022/06/25(土) 15:39:32.24ID:Ho0z1jTS
>>930
そもそもアセンブラとかいってる時点でなにもわかってないから相手にするだけ無駄、無視推奨
2022/06/25(土) 15:45:57.58ID:VflkbZsO
Rustで書くとバイナリ肥大化するから、WATが基本になりそうでは?
2022/06/25(土) 15:53:47.79ID:l76RX7xy
>>935
javaの問題をある程度解決したのがwasmっていう認識でおけ?
939デフォルトの名無しさん
垢版 |
2022/06/25(土) 16:03:23.70ID:9jpr7vFN
それな。Javaっぽくwebvmとかwebバイナリとかいった名前の方が分かりやすかったんじゃなかろうか
2022/06/25(土) 16:05:36.45ID:VflkbZsO
貴様に正義があるというのなら、三行以内で示せ。
2022/06/25(土) 16:05:54.41ID:jO6HH2tH
>>930
仮にウェブのアセンブラだとして、ウェブのアセンブラってなんやねん……
2022/06/25(土) 16:07:10.43ID:ILDlrGK/
WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech
https://logmi.jp/tech/articles/324956

スライド画像
https://img.logmi.jp/article_images/Jq1SrATqsEYupEF4aeAh6j.png
https://img.logmi.jp/article_images/HxUso3S1L63MXwia5RxGXd.png
https://img.logmi.jp/article_images/CntVo54bYF2MXnib2EXGei.png
https://img.logmi.jp/article_images/VLPRht2v3NnzzWyWP1pvrs.png
https://img.logmi.jp/article_images/SsS6T6EZrrPaWCSi5xq2bJ.png
https://img.logmi.jp/article_images/2Miy64H2xW7RnWCRGGJDAQ.png
https://img.logmi.jp/article_images/F2UYcDuwsrybfB6F4npBDL.png
https://img.logmi.jp/article_images/GC6f4J9DHeoEaTQGXaKacJ.png
2022/06/25(土) 16:08:16.68ID:VflkbZsO
>>941
俺の予想では、それが質問内容だと思います。
2022/06/25(土) 16:08:25.01ID:ILDlrGK/
>>938
これ>>942
2022/06/25(土) 16:15:09.41ID:akwg01K7
複オジばりの汚文章でワロタ
中身がなさすぎ
2022/06/25(土) 16:15:26.89ID:KYOYlq4y
>>943
wasmの読み方じゃなかったっけ?
2022/06/25(土) 16:19:32.95ID:VflkbZsO
読み方は、ワッセンブラで決まりでしょう。
2022/06/25(土) 16:20:56.33ID:XFOsSqRc
DOM・シャドーDOM操作が遅いからwasmはあまり流行らない、これを何とかしない限り、シコシコts書いてるオジサンが量産される
2022/06/25(土) 16:25:58.06ID:a5vhFArq
>>947
>>917-920あたりが答えです
2022/06/25(土) 16:29:05.96ID:VflkbZsO
俺は白人の読み方なんか認めんよ。
中国ならまだしも。
2022/06/25(土) 16:33:30.99ID:jO6HH2tH
命名の伝統としてちょっとしたネガティブワードを使うことがあるんだよ。
いわゆるギークセンスというやつだが、日本語でいう中二病に近い。
GIMP の名前を変えるためにフォークするだのなんだのでもめたことがあるの知らんか?

Wasm もそれと同じようなノリなんじゃねーの?
https://eow.alc.co.jp/search?q=wasm
2022/06/25(土) 16:35:39.94ID:VflkbZsO
>>951
じゃあ、ワッセンブラでいいじゃん。
2022/06/25(土) 16:39:47.09ID:ljJSN7j6
>>952
きみはそう呼んでればいいと思うよ
きみにそう呼ぶ機会はないと思うけどw
2022/06/25(土) 16:43:21.45ID:VflkbZsO
菅総理が、我が国はワッセンブラに注力すると宣言したら、どうするんだよ?
2022/06/25(土) 16:47:50.00ID:Xmq8wuxM
なるほど、、?(わからん)
WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
https://zenn.dev/igrep/articles/2021-11-wasm-reference-types
2022/06/25(土) 16:50:02.77ID:R8NAfVhJ
DOMってなんだ?(←自分で調べろ)
2022/06/25(土) 17:02:05.86ID:WInGVki9
>>956
DOMとは?わかりやすく解説する! | イバログ
https://gyroibaraki.com/dom/
2022/06/25(土) 17:04:38.90ID:Ch122rDL
DOM操作なんか、どうやっても遅いんだからワズムからいじる必要ないだろ
2022/06/25(土) 17:08:43.45ID:/UVjDglo
DOM操作は流石にJS系でやればよくね?
2022/06/25(土) 17:19:33.87ID:XFOsSqRc
そんなことはない、JSやTSのようなダメ言語を排して、全部ほかのコンパイル型言語で統一して書けるように考えたのに
遅いなら話にならない。うんこ
2022/06/25(土) 17:32:09.99ID:KYOYlq4y
wasmはjsを置き換えるものではないっていう方針がよくわからんな。置き換えていいのに。
2022/06/25(土) 17:33:38.66ID:Ch122rDL
タイプスクリプトでドム操作書いてみたら分かると思うけど、キャストだらけになる
2022/06/25(土) 17:38:33.58ID:Sl1k0I/l
WebAssemblyはJavaScriptを置き換えようとしていますか?
いいえ!WebAssemblyは、JavaScriptを補完するものであり、JavaScriptを置き換えるものではないように設計されています。WebAssemblyは、時間の経過とともに多くの言語をWebにコンパイルできるようになりますが、JavaScriptには信じられないほどの勢いがあり、Webの単一の特権( 上記のとおり)動的言語のままです。さらに、JavaScriptとWebAssemblyは、さまざまな構成で一緒に使用されることが期待されています。

・JavaScriptを活用して物事をつなぎ合わせるコンパイル済みのC++アプリ全体。
・WebAssemblyで制御されるメインのセンターキャンバスの周りのHTML/CSS / JavaScript UIにより、開発者はWebフレームワークの力を活用して、アクセス可能なWebネイティブな感覚のエクスペリエンスを構築できます。
・ほとんどの場合、いくつかの高性能WebAssemblyモジュールを備えたHTML / CSS / JavaScriptアプリ(たとえば、グラフ化、シミュレーション、画像/音声/ビデオ処理、視覚化、アニメーション、圧縮など、今日asm.jsですでに見られる例)開発者が今日のJavaScriptライブラリと同じように人気のあるWebAssemblyライブラリを再利用できるようにします。
・WebAssembly がガベージコレクションされたオブジェクトにアクセスできる:ユニコーン:ようになると、それらのオブジェクトはJavaScriptと共有され、独自の壁に囲まれた世界には存在しなくなります。
https://webassembly.org/docs/faq/#is-webassembly-trying-to-replace-javascript より
2022/06/25(土) 17:57:29.10ID:qzsUrSUG
なるほどね
2022/06/25(土) 17:59:58.79ID:9jpr7vFN
ははーん、ユニコーンね
2022/06/25(土) 18:04:46.90ID:ndOOnBgl
https://github.githubassets.com/images/icons/emoji/unicode/1f984.png
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は全体に適用されるため
同じ名前のサブコマンドでも全く異なる
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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